xxm0720
xxm0720
采纳率40.9%
2017-11-25 03:14 阅读 1.4k

JSON字符串转JSON对象,注意其中desc中要两个,而不是一个

{ "title": "材料輸入","desc":{"處理內容":"","處理內容":""},"wf_type":{"處理內容":"1","處理內容":"1"},"point":{"處理內容":"80,400,250,300","處理內容":"80,300,250,350"},"wf_allowblank":{"處理內容":"N","處理內容":"N"},"wf_radio":{},"wf_radiopoint":{}}"

我试了JSON.parse和eval都不行,转化出来desc中都是一个

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

3条回答 默认 最新

  • 已采纳
    lovingning mnlin 2017-11-25 03:31

    gson格式是从js对象的基础延伸的,js对象键值对中的键需要保持唯一性,如果两个键完全相同,后者会覆盖前者。
    如果只是为了从字符串中过去两个desc的值,就不要当成json串处理,直接使用正则替换出来

    点赞 评论 复制链接分享
  • qq_37750143 大博主 2017-11-25 03:29

    你这个应该是先拿desc 再拿"处理内容"里面的值,不知道这样行不行,我试试

    点赞 评论 复制链接分享
  • qq_37750143 大博主 2017-11-25 03:34
                    Gson gson = new Gson();
            JsonParser parser = new JsonParser();
            JsonObject obj = parser.parse(doGet).getAsJsonObject();
             int retCode = obj.get("ret_code").getAsInt();
            System.out.println("retCode=" + retCode);
            if (retCode == 200) {
             JsonArray dataArray = obj.get("data").getAsJsonArray();
            dataArray.forEach((action) -> {
             JsonObject dataObj = action.getAsJsonObject();
             int platformNo = dataObj.get("platform_no").getAsInt();
             System.out.println("platformNo=" + platformNo);
            });
            }
    ```那个doget就是掉第三方拿到的json数据
    
    
    点赞 评论 复制链接分享

相关推荐