关于Json的一些研究

声明

完整的初始化以及逻辑如下,包括初始化以及必须catch的JsonException
为了更简明扼要地展示关键语句对应的结果,省略掉不必要的内容。后续就不显示这些信息了。

JSONObject jsonObject = new JSONObject();
JSONObject innerJsonObject = new JSONObject();
try {
   	jsonObject.put("1","1");
   	innerJsonObject.put("1", "1");
   	jsonObject.put("json", innerJsonObject);
   	Log.d("theDarkWoods", jsonObject.toString());
} catch (JSONException e) {
   	e.printStackTrace();
}

存入JsonObject时重复的键名会被覆盖

jsonObject.put("1",1);
jsonObject.put("1","1");
Log.d("theDarkWoods", jsonObject.toString());

此情况下打印出的信息为

{"1":"1"}

只有值类型为字符串时,才会被"双引号"包裹

[数组] {对象} " 字符串 " 键:值
try {
    jsonObject.put("1","1");
    innerJsonObject.put("1", "1");
    jsonObject.put("json", innerJsonObject);
    Log.d("theDarkWoods", jsonObject.toString());
} catch (JSONException e) {
    e.printStackTrace();
}

此情况下打印出的信息为

{"1":"1","json":{"1":"1"}}

JsonArray作为数组,用[包裹],里面的元素由","分隔,且没有键值对应。

JSONObject jsonObject = new JSONObject();
JSONObject innerJsonObject = new JSONObject();
jsonObject.put("1", true);
innerJsonObject.put("1", "true");
jsonObject.put("json", innerJsonObject);
JSONArray jsonArray = new JSONArray();
jsonArray.put(1);
jsonArray.put("1");
jsonArray.put(jsonObject);
Log.d("theDarkWoods", jsonArray.toString());

此情况下打印出的信息为

[1,"1",{"1":true,"json":{"1":"true"}}]

第一个元素是int值的1,因为不是字符串类型,所以不加""
第三个元素是一个JsonObject,由{}包裹,其内部是由两个键值对构成。

你可能感兴趣的:(关于Json的一些研究)