JSONArray与JSONObject怎么用?

想按索引位index来取值;
现在是字符串数据是这样的 [1,123,"xiaoming","aaaa"]
转换为jsonobj或jsonarray后无法直接获取第N个数据呀?必须要key才能取得value怎么办?

//要把值放在ContentValues里
//ContentValues cValue = new ContentValues();
//cValue.put("id", myArr.getInt("myName"));//需要key
//cValue.put("name", myObj.getString("myKey"));//需要key

在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 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);}

    需要注意的是,在使用这些类时,应该始终考虑错误处理和异常情况。例如,在解析JSON数据时,需要处理可能失败的情况,以免导致应用程序崩溃。

追问

服务器就传下来一个字符串[1,123,"xiaoming","aaaa"],转换为json object或是array很容易,但是怎么获取其中的第3个值-小明

温馨提示:答案为网友推荐,仅供参考
第1个回答  2023-05-10
首先要搞清楚有两种包都支持字符串转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);追问

JSON构造的时候没有put(key,value),服务器就传了一个json格式的字符串[1,123,"xiaoming","aaaa"]

相似回答
大家正在搜