Json建构于两种结构:
1、“名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。 如:
{
“name”:”jackson”,
“age”:100
}
2、值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)如:
{
“students”:
[
{“name”:”jackson”,“age”:100},
{“name”:”michael”,”age”:51}
]
}
二、解析
1,解析对象
private static Map<String, String> jsonStringToList(String rsContent) throws Exception { // rsContent = "{\n" + // " \"bss\": \"browser_set\",\n" + // " \"operation\": \"sel\",\n" + // " \"jid\": \"18602912226\",\n" + // " \"browser_ID\": \"361.exe\",\n" + // " \"browser_pic\": \"item.logo.IE\",\n" + // " \"browser_name\": \"360浏览器\",\n" + // " \"browser_path\": \"123\",\n" + // " \"browser_remark\": \"使用自定义浏览器打开\"\n" + // " }\n"; JSONObject arry = JSONObject.fromObject(rsContent); System.out.println("json字符串内容如下"); System.out.println(arry); Map<String, String> map = new HashMap<String, String>(); for (Iterator<?> iter = arry.keys(); iter.hasNext(); ) { String key = (String) iter.next(); String value = arry.get(key).toString(); map.put(key, value); } return map; }
2,解析数组
private static List<Map<String, String>> jsonStringToList(String rsContent) throws Exception
{
rsContent = "{\n" +
" \"bss\": \"browser_set\",\n" +
" \"operation\": \"sel\",\n" +
" \"jid\": \"18602912226\",\n" +
" \"browser_ID\": \"361.exe\",\n" +
" \"browser_pic\": \"item.logo.IE\",\n" +
" \"browser_name\": \"360浏览器\",\n" +
" \"browser_path\": \"123\",\n" +
" \"browser_remark\": \"使用自定义浏览器打开\"\n" +
" }\n";
JSONObject arry = JSONArray.fromObject(rsContent);
System.out.println("json字符串内容如下");
System.out.println(arry);
List<Map<String, String>> rsList = new ArrayList<Map<String, String>>();
for (int i = 0; i < arry.size(); i++)
{
JSONObject jsonObject = arry.getJSONObject(i);
Map<String, String> map = new HashMap<String, String>();
for (Iterator<?> iter = jsonObject.keys(); iter.hasNext();)
{
String key = (String) iter.next();
String value = jsonObject.get(key).toString();
map.put(key, value);
}
rsList.add(map);
}
return rsList;
}