首页 / 操作系统 / Linux / Java解析Json字符串--Map
Java解析Json字符串--MapJson字符串示例:{
"age": 20,
"gender": "male",
"grades": "三班",
"name": "苏三",
"weight": 63.5
}遇到这样的格式的Json字符串,我们可以将其解析成一个bean,同时我们也可以直接将其解析为Map。解析成Map比较简单,我们直接来看看解析方法。--------------------------------------分割线 --------------------------------------[译]JSON数据范式化(normalizr) http://www.linuxidc.com/Linux/2016-02/128288.htm如何处理JSON中的特殊字符 http://www.linuxidc.com/Linux/2015-09/123067.htmStruts中异步传送XML和JSON类型的数据 http://www.linuxidc.com/Linux/2013-08/88247.htmLinux下JSON库的编译及代码测试 http://www.linuxidc.com/Linux/2013-03/81607.htmjQuery 获取JSON数据[$.getJSON方法] http://www.linuxidc.com/Linux/2013-03/81673.htm用jQuery以及JSON包将表单数据转为JSON字符串 http://www.linuxidc.com/Linux/2013-01/77560.htm在C语言中解析JSON配置文件 http://www.linuxidc.com/Linux/2014-05/101822.htm--------------------------------------分割线 --------------------------------------第一种方法:package com.test;import java.util.HashMap;
import java.util.Map;import net.sf.json.JSONObject;public class Domain { @SuppressWarnings("unchecked")
public static void main(String[] args) { String jsonStr = "{"weight":51.3,"name":"露西","age":26,"gender":"female","grades":"三班"}"; Map<String, Object> map = new HashMap<String, Object>(); map = JSONObject.fromObject(jsonStr); System.out.println(map.get("weight"));
System.out.println(map.get("name"));
System.out.println(map.get("age"));
System.out.println(map.get("gender"));
System.out.println(map.get("grades"));
}
}说明:这种方法比较暴力直接,我们直接将得到的JSONObject赋值给map即可,连强制类型转换都不需要。(个人感觉这种方式比较简单方便,但是网上很少有这样实现的,具体原因未知。JDK1.7下测试完全没问题。)
第二种方法:package com.test;import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;import net.sf.json.JSONObject;public class Domain { @SuppressWarnings("unchecked")
public static void main(String[] args) { String jsonStr = "{"weight":51.3,"name":"露西","age":26,"gender":"female","grades":"三班"}"; Map<String, Object> map = new HashMap<String, Object>(); JSONObject jsonObject = JSONObject.fromObject(jsonStr); Iterator<String> keys = jsonObject.keys();//定义迭代器 String key = null;
Object value = null; while(keys.hasNext()){
key = keys.next();
value = jsonObject.get(key); map.put(key, value);
} System.out.println(map.get("weight"));
System.out.println(map.get("name"));
System.out.println(map.get("age"));
System.out.println(map.get("gender"));
System.out.println(map.get("grades"));
}
}说明:这种方式比较传统,网上也大都是采用的这种方式。
最后,我们来看看怎么通过Map生成Json字符串package com.test;import java.util.HashMap;
import java.util.Map;import net.sf.json.JSONObject;public class Domain { public static void main(String[] args) { Map<String, Object> map = new HashMap<String, Object>(); map.put("age", 26);
map.put("gender", "female");
map.put("grades", "三班");
map.put("name", "露西");
map.put("weight", 51.3f); String jsonStr = JSONObject.fromObject(map).toString();
System.out.println(jsonStr);
}
}本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-02/128411.htm