在线工具 在线编程 在线白板 在线工具 在线编程 在线白板

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
最新回答
欧尼酱

2025-03-31 01:10:26

在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个值-小明
村姑范

2025-03-31 03:51:44

首先要搞清楚有两种包都支持字符串转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"]