json字符串是什么 json格式是字符串嗎

大家好,今天小編來為大家解答以下的問題,關于json字符串是什么,json格式是字符串嗎這個很多人還不知道,現在讓我們一起來看看吧!js怎么將string轉換為json...
大家好,今天小編來為大家解答以下的問題,關于json字符串是什么,json格式是字符串嗎這個很多人還不知道,現在讓我們一起來看看吧!
js怎么將string轉換為json對象
例如:
JSON字符串:
varstr1='{"name":"cxh","sex":"man"}';
JSON對象:
varstr2={"name":"cxh","sex":"man"};
一、JSON字符串轉換為JSON對象
要使用上面的str1,必須使用下面的方法先轉化為JSON對象:
//由JSON字符串轉換為JSON對象
varobj=eval('('+str+')');
或者
varobj=str.parseJSON();//由JSON字符串轉換為JSON對象
或者
varobj=JSON.parse(str);//由JSON字符串轉換為JSON對象
然后,就可以這樣讀取:
Alert(obj.name);
Alert(obj.sex);
特別注意:如果obj本來就是一個JSON對象,那么使用eval()函數轉換后(哪怕是多次轉換)還是JSON對象,但是使用parseJSON()函數處理后會有問題(拋出語法異常)。
PHP如何判斷字符串是否標準JSON,有什么好辦法
引言
在MYSQL5.6及以下沒有JSON這個字段類型的時候,我們還只能用字符串存儲數組,對象,這些結構數據;甚至有直接將序列化的對象存庫的,都是無奈之舉。
編程中也時不時對接口進行json_encode/json_decode。那么如果所得的字符串不是標準的格式,有什么辦法快速檢測嗎?
本文就來說一說。
學習時間最快的辦法,還是使用PHP內置的json_decode函數,對于此函數的參數和返回值,我們需要認真地分析。
該函數接受一個JSON編碼的字符串并且把它轉換為PHP變量。函數結構:
mixedjson_decode(string$json[,bool$assoc=false[,int$depth=512[,int$options=0]]])
除了第一個字符串類型的$json必填之外,其他都是選填。如果我們定制功能,需要后面的參數也指定。比如,解碼的字符串解析為關聯數組,那么就指定$assoc=true。
考慮到兼容性的要求,$json傳入的字符串,必須是UTF-8編碼格式。
我們試著編寫一個助手函數,用于判斷字符串是否標準的json格式:
functionisJson($string){json_decode($string);return(json_last_error()==JSON_ERROR_NONE);}
這個方法使用了2個函數,和1個常量。其中json_decode是對字符串解碼暫且不說。json_last_error函數,如果有返回值,則是JSON編碼解碼時最后發生的錯誤。
JSON_ERROR_NONE是無錯誤,=0。該句判斷沒有錯誤則是標準格式,返回true;否則返回false。
深入學習其實上面的代碼對于json加解碼過程中的錯誤判斷還是比較粗糙的。有一位小哥不嫌繁瑣,手動拼裝了詳細的錯誤處理函數,非常實用。
使用上述函數進行測試:
$json='[{"user_id":13,"username":"stack"},{"user_id":14,"username":"over"}]';$output=json_validate($json);print_r($output);
輸出內容如下:
這是正常的情況,json格式完全正確。我們再測試一個不是規范格式的字符串。
$json='{background-color:yellow;color:#000;padding:10px;width:650px;}';$output=json_validate($json);print_r($output);
輸出錯誤信息:
Syntaxerror,malformedJSON.
萬能的正則跟字符串打交道,正則表達式幾乎可以做一切你想要的結果。json字符串也一樣,據文檔所說,使用正則表達式判斷JSON格式,穩定有效,而且速度還很快。
下面這個正則表達式您拿小本本記好了,一模一樣地抄下來用就可以了。
return!preg_match('/[^,:{}\\[\\]0-9.\\-+Eaeflnr-u\\n\\r\\t]/',preg_replace('/"(\\.|[^"\\\\])*"/','',$json_string));
寫在最后如果考慮程序的可讀性,和可維護性,使用json_decode函數的判斷無疑更直觀,大家也更熟悉。然而正則表達式所體現出的高效也是不容小覷的。
Happycoding:_)
我是@程序員小助手,持續分享編程知識,歡迎關注。
jsonobject是什么程序語言
JSONObject不是一種程序語言,而是一個表示JSON對象的類庫,可以在多種編程語言中使用。JSON(JavaScriptObjectNotation)是一種輕量級、易于閱讀和編寫的數據交換格式,廣泛用于Web應用程序中。JSONObject則是一種能夠處理JSON格式數據并提供相關功能的類庫,支持各種編程語言,如Java,C#,Python,PHP等。
因為JSON數據格式本身可以被多種編程語言解析和讀取,在Web應用程序中,前端JavaScript代碼通常會將JSON格式的數據從服務器獲取,并用于呈現動態內容或組成用戶界面。同時,后端編程語言(如Java,C#,Python)也經常用JSON格式來處理數據請求和響應,在這里,JSONObject類庫就成為了一個非常有用的工具,它可以方便地解析JSON格式數據,提取其中的字段和數據,比如讀取一個JSON對象的屬性,或者遍歷一個JSON數組等。
怎么把json對象轉換為json字符串
用Gson轉換就行了,需要下載jar包
例子:
Personperson=newPerson();Gsongson=newGson();Stringjson=gson.toJson(person);
json字符串可以壓縮么
這個和你的客戶端處理相關聯,如果服務端對標準json串進行了修改和壓縮,那你客戶端的處理需要解壓和對應的處理,這樣的話標準的庫可能直接使用會有問題,需要進行客戶端解析庫的定制 如果客戶端服務端都是你定制的序列化和反序列化,那你可以任意控制這個格式,修改json串,如果要和標準兼容最好不要這樣定制,如果你是想減少網絡流量,建議使用web服務的http壓縮
OK,本文到此結束,希望對大家有所幫助。
本文鏈接:http://xinin56.com/ruanjian/818.html