您的位置:首页 > 移动开发 > Objective-C

JSONObject和JSONArray使用问题

2015-11-11 19:16 676 查看
JSONObject和JSONArray使用注意:

(1)二者比较容易区别,别误用,JSONObject是{}结构,JSONArray是[]结构。

(2)如果没有对应的key,会抛出异常。

(3)如果put进去的东西是null,那么不会被存进去,但是”“可以。

JSONObject和JSONArray使用的几种常见情况:

//1 json对象转换为字符串
JSONObject subObject = new JSONObject();
subObject.put("ooo", "***");
subObject.put("ppp", "&&&");

JSONObject object = new JSONObject();
object.put("aaa", "111");
object.put("bbb", null);
object.put("ccc", subObject);

System.out.println(object.toString());
/*//{"aaa":"111","ccc":{"ppp":"&&&","ooo":"***"},"bbb":"222"}

//2 json数组对象装换为字符串
//JSONObject到JSONArray
JSONArray array = new JSONArray();
JSONObject object1 = new JSONObject();
object1.put("aaa", "111");
object1.put("bbb", "中文");

JSONObject object2 = new JSONObject();
object2.put("aaa", "111");
object2.put("bbb", "222");

array.put(object1);
array.put(object2);

System.out.println(array.toString());
//[{"aaa":"111","bbb":"中文"},{"aaa":"111","bbb":"222"}]

//3 字符串转换为json对象
String jsonStr = "{\"aaa\":\"111\",\"ccc\":{\"ooo\":\"***\",\"ppp\":\"&&&\"},\"bbb\":\"222\"}";
JSONParser parser = new JSONParser();
try {
JSONObject parseObject = (JSONObject)parser.parse(jsonStr);
System.out.println("---->" + parseObject.toJSONString());
} catch (ParseException e) {
e.printStackTrace();
}

//4 字符串转换为数组
jsonStr = "[{\"aaa\":\"111\",\"bbb\":\"222\"},{\"aaa\":\"111\",\"bbb\":\"222\"}]";
try {
JSONArray parseObject = (JSONArray)parser.parse(jsonStr);
System.out.println("---->" + parseObject.toJSONString());
} catch (ParseException e) {
e.printStackTrace();
}

//5  集合转换为JSONArray对象
//初始化ArrayList集合并添加数据
List<String> list = new ArrayList<String>();
list.add("username");
list.add("age");
list.add("sex");
//初始化HashMap集合并添加数组
Map map = new HashMap();
map.put("bookname", "CSS3实战");
map.put("price", 69.0);

//初始化JSONArray对象,并添加数据
JSONArray array2 = new JSONArray();
array2.put(list);
array2.put(map);

System.out.println(array2.toString());
//生成的JSON字符串为:[["username","age","sex"],{"bookname":"CSS3实战","price":69}]

//6  根据接收到的JSON字符串来解析字符串中所包含的数据和数据对象
//接收到的JSON字符串
String result = "[{\"username\": \"your name\", \"user_json\": {\"username\": \"your name\", \"nickname\": \"your nickname\"}}]";

//根据字符串生成JSON对象
JSONArray resultArray = JSONArray.fromObject(result);
JSONObject resultObj = resultArray.optJSONObject(0);

//获取数据项
String username = resultObj.getString("username");

//获取数据对象
JSONObject user = resultObj.getJSONObject("user_json");
String nickname = user.getString("nickname");
System.out.println(username);//your name
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  JSONObject json JSONArray