2 heisejiuhuche heisejiuhuche 于 2016.01.17 11:36 提问

json与java对象转换的问题 5C

请问一下这样的json字符串如何转化为java对象呢? json字符串: "{"post":{"userId":"1","postId":"2"}}" 如果post后面是一个json字符串,那一点问题都没有,但是post后面是一个json对象,这要怎么解析呢?我的javabean是Post。求大神帮忙~

10个回答

91program
91program   Ds   Rxr 2016.01.17 12:59

Json是标记语言,到任何语言,都需要一个解析的过程。解析后,再通过语言,或者系统的功能完成Post的功能。

91program
91program Json开源解析的项目很多,网上应该有现成的
接近 2 年之前 回复
u010668907
u010668907   2016.01.17 15:51

试试用开源的gson解析一下,或者如果你不嫌麻烦,就自己写程序一点一点的解析,因为本身你的这个json最外层是可以当成一个key是post,
value是后面那一串的map,然后就得到value,再把value解析就可以。
不过建议用gson。

Royal_lr
Royal_lr   Ds   Rxr 2016.01.17 18:11

那就在Post里面再封装一个对象,userId和postId

xuehuayous
xuehuayous   2016.01.17 22:44

你可以参考我之前写的一个JSON到Bean等装的工具类,可以轻松实现数据的封装。
http://m.blog.csdn.net/article/details?id=50495677

qq_17194815
qq_17194815   2016.01.18 20:40

可以借助fastjson来解析

xiaobai1024
xiaobai1024   2016.01.18 23:10

使用Google的gjson比较简单,提供两个参数,分别是json字符串以及需要转换对象的类型。使用fromjson方法即可

zcxgz362324
zcxgz362324   2016.01.19 10:45
 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);

        }

    }

这段代码对你应该有帮助__ 我要分

zcxgz362324
zcxgz362324   2016.01.19 10:46

JSONObject.toBean(
(JSONObject) retData.get(i), Ysm_Data.class);

JSONArray retData = (JSONArray) JSONObject.fromObject(result).get(
"data");

主要是这两句代码!!!望采纳!!!!!!

LJQ_2014
LJQ_2014   2016.01.20 13:35

Gson gson = new Gson();
String result = gson.toJson(json);
Bean bean = gson.fromJson(result,Bean.class);
String a = bean.get....

euthan
euthan   2016.01.22 09:29

在封装一个对象,里面包含了userId、postID。然后post对象里包含对这个对象的引用

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!