请问一下这样的json字符串如何转化为java对象呢? json字符串: "{"post":{"userId":"1","postId":"2"}}" 如果post后面是一个json字符串,那一点问题都没有,但是post后面是一个json对象,这要怎么解析呢?我的javabean是Post。求大神帮忙~
Json是标记语言,到任何语言,都需要一个解析的过程。解析后,再通过语言,或者系统的功能完成Post的功能。
试试用开源的gson解析一下,或者如果你不嫌麻烦,就自己写程序一点一点的解析,因为本身你的这个json最外层是可以当成一个key是post,
value是后面那一串的map,然后就得到value,再把value解析就可以。
不过建议用gson。
那就在Post里面再封装一个对象,userId和postId
你可以参考我之前写的一个JSON到Bean等装的工具类,可以轻松实现数据的封装。
http://m.blog.csdn.net/article/details?id=50495677
可以借助fastjson来解析
使用Google的gjson比较简单,提供两个参数,分别是json字符串以及需要转换对象的类型。使用fromjson方法即可
public void insertPosition() {
String result="";
try {
result = URLConnection.getURLReturnData("http://115.28.170.103:8080/AQI/?appid=33da336aa12544bd&key=YDyLlhANb1o9ACyFdUnSdFoqMvI%3D");
} catch (Exception e) {
System.out.println("网络连接失败");
logger.error("网络连接失败");
}
JSONArray retData = (JSONArray) JSONObject.fromObject(result).get(
"data");
totalSize=retData.size();
for (int i = 0; i < retData.size(); i++) {
Ysm_Data ysm_Data = (Ysm_Data) JSONObject.toBean(
(JSONObject) retData.get(i), Ysm_Data.class);
Ysm_Position ysm_Position = new Ysm_Position(
ysm_Data.getStation_code(), ysm_Data.getPosition_name(),
ysm_Data.getLon(), ysm_Data.getLat());
Ysm_Position ysmPotition=positionService.insertPosition(ysm_Position);
Ysm_Position_Info ysm_Position_Info = new Ysm_Position_Info(ysmPotition.getId(),
ysm_Data.getCo(), ysm_Data.getPm10(),
ysm_Data.getQuality(), ysm_Data.getArea(),
ysm_Data.getO3(), ysm_Data.getSo2(), ysm_Data.getNo2(),
ysm_Data.getTime_point(), ysm_Data.getAqi(),
ysm_Data.getPrimary_pollutant(), ysm_Data.getPm25());
position_InfoService.insertPosition_Info(ysm_Position_Info);
}
}
这段代码对你应该有帮助__ 我要分
JSONObject.toBean(
(JSONObject) retData.get(i), Ysm_Data.class);
JSONArray retData = (JSONArray) JSONObject.fromObject(result).get(
"data");
主要是这两句代码!!!望采纳!!!!!!
Gson gson = new Gson();
String result = gson.toJson(json);
Bean bean = gson.fromJson(result,Bean.class);
String a = bean.get....
在封装一个对象,里面包含了userId、postID。然后post对象里包含对这个对象的引用