JSONArray与JSONObject怎么用?
在Android开发中,JSONArray和JSONObject是两个常用的JSON数据解析类。以下是它们的基本使用方法:
一、JSONArray
创建JSONArray对象:
- JSONArray jsonArray = new JSONArray();
添加元素到JSONArray中:
- jsonArray.put("value");
从JSONArray中获取元素:
- String value = jsonArray.getString(0);
遍历JSONArray中的元素:
- for (int i = 0; i < jsonArray.length(); i++){
- String value = jsonArray.getString(i);}
创建JSONObject对象:
- JSONObject jsonObject = new JSONObject();
添加键值对到JSONObject中:
- jsonObject.put("key", "value");
从JSONObject中获取值:
- String value = jsonObject.getString("key");
遍历JSONObject中的所有键:
- Iterator<String> iterator = jsonObject.keys();while(iterator.hasNext()){
- String key = iterator.next();
- String value = jsonObject.getString(key);}
二、JSONObject
需要注意的是,在使用这些类时,应该始终考虑错误处理和异常情况。例如,在解析JSON数据时,需要处理可能失败的情况,以免导致应用程序崩溃。
首先要搞清楚有两种包都支持字符串转json数据,但这两种的语法并不相同。
这两个包分别是:org.json和json-lib;其中如果要用json-lib的话还必须下载另外5个jar包,而使用org.json则不需要。
JSONObject jsonObject = new JSONObject();
jsonObject.put(key, value);
System.out.println( jsonObject.toString());
JSONObject jsonObject = JSONObject.fromObject(MyObject);
System.out.println(jsonObject);
绛旓細涓銆JSONArray 鍒涘缓JSONArray瀵硅薄锛欽SONArray jsonArray = new JSONArray();娣诲姞鍏冪礌鍒癑SONArray涓細jsonArray.put("value");浠嶫SONArray涓幏鍙栧厓绱狅細String value = jsonArray.getString(0);閬嶅巻JSONArray涓殑鍏冪礌锛歠or (int i = 0; i < jsonArray.length(); i++){ String value = jsonAr...
绛旓細鍖哄埆鍦ㄤ簬JSONObject鏄竴涓獅}鍖呰9璧锋潵鐨勪竴涓璞(Object)锛岃JSONArray鍒欐槸[]鍖呰9璧锋潵鐨勪竴涓暟缁(Array)锛岃鐧界偣灏辨槸涓涓槸鏁扮粍涓涓槸瀵硅薄鎴栧瓧绗︿覆
绛旓細JSONObject.parse(s)鏄皟鐢↗SONObject绫荤殑闈欐佹柟娉昿arse()鏂规硶灏嗗瓧绗︿覆鏍煎紡鐨JSON鏁版嵁s瑙f瀽涓篔SON瀵硅薄銆(JSONArray) JSONObject.parse(s)灏嗚浆鎹㈠悗鐨凧SON瀵硅薄寮哄埗杞崲涓篔SON鏁扮粍锛圝SON瀵硅薄鐨勯泦鍚堬級锛屽洜涓簊涓彲鑳藉寘鍚涓狫SON瀵硅薄鏁版嵁銆傛渶缁圝SON鏁扮粍鏄jsonary銆
绛旓細1銆佷娇鐢ㄥ師鐢熺殑瑙f瀽锛歋tring json = "...";JSONArray array= new JSONArray(json);//閬嶅巻鏁扮粍閲岀殑鍊硷紝寰楀埌姣忎釜鐙珛鐨勫璞★紝鐒跺悗鑾峰彇瀵瑰簲鐨勫艰缃埌澹版槑濂界殑瀵硅薄涓紝鏈缁堝垱寤哄璞″畬鎴愬悗娣诲姞鍒伴泦鍚堜腑锛屽鎴戣嚜宸变唬鐮侀噷鐨勭墖娈:for (int j = 0; j < array.length(); j++) {obj = array.getJSON...
绛旓細锛1锛夌洿鎺ヨ浆鎹細鍒涘缓JSONArray瀵硅薄銆丣SONObject瀵硅薄锛岄氳繃put鏂规硶灏嗗叾鏁版嵁浠ラ敭鍊煎鐨勫舰寮忓~鍏咃紝濡備緥锛//鍋囧鏈変竴涓狫ava瀹炰綋绫籔erson锛屽寘鎷互涓嬪睘鎬э細phone銆乻ex銆乵arried銆乤ddress銆侫rrayList<Person> persons = new ArrayList<Person>();for (int i = 0; i < 3; i++) { persons.add(new Person(...
绛旓細1銆佹墦寮JSON鏁版嵁锛屽苟鏌ョ湅鍏剁粨鏋勩傜‘淇濅綘澶勭悊鐨勬槸JSON鏁扮粍銆2銆佹壘鍒版暟缁勭殑绗竴涓厓绱犮備綘鍙互鎵嬪姩妫鏌ユ暟鎹垨浣跨敤鏂囨湰缂栬緫鍣ㄧ殑鎼滅储鍔熻兘鏉ュ揩閫熷畾浣嶃3銆佹墜鍔ㄥ垹闄ゆ渶澶栧眰鐨勬柟鎷彿[]銆備綘鍙互浣跨敤鏂囨湰缂栬緫鍣ㄧ殑鍓垏鎴栧垹闄ゅ姛鑳芥潵瀹屾垚杩欎竴姝ャ4銆佹鏌ュ苟纭宸茬粡鎴愬姛绉婚櫎浜嗘柟鎷彿锛屼笖鏁扮粍鐨勭涓涓厓绱犱粛鐒舵槸涓涓湁鏁...
绛旓細鎴戠寽鎯筹紝Douglas Crockford涓瀹氫簨鍏堝氨鐭ラ亾锛屾暟鎹粨鏋勫彲浠ョ畝鍖栨垚涓夌褰㈠紡锛屽惁鍒欐庝箞鍙兘灏json瀹氫箟寰楀姝ょ簿鐐煎憿锛3.瀛︿範javascript鐨勬椂鍊欙紝鎴戞浘缁忎竴搴︽悶涓嶆竻妤氣濇暟缁勨(array)鍜屸濆璞♀(object)鐨勬牴鏈尯鍒湪鍝噷锛屼袱鑰呴兘鍙互鐢ㄦ潵琛ㄧず鏁版嵁鐨勯泦鍚堛傛瘮濡傛湁涓涓暟缁刟=[1,2,3,4]锛岃繕鏈変竴涓璞={0:1,1:2...
绛旓細JSONArray jsonArray=JSONArray.fromObject(arrayStr);//灏唈son绫诲瀷鐨剆tring array杞崲涓篔SONArray瀵硅薄 JSONObject getJsonObj = jsonArray.getJSONObject(0);//鑾峰彇json鏁扮粍涓殑绗竴椤
绛旓細json 鏁扮粍涔熸槸鏁扮粍 //1銆乿ar jsonstr="[{'name':'a','value':1},{'name':'b','value':2}]";var jsonarray = eval('('+jsonstr+')');var arr = { "name" : $('#names').val(),"value" : $('#values').val()} jsonarray.push(arr);//2銆乿ar json={};// 瀹氫箟涓...
绛旓細鍦ㄥ惊鐜綋涓璶ew JsonObject瀵硅薄 鏀捐繘JsonArray涓