Json数据与对象相互转换

java对象/map 转换成json

public static final ObjectMapper MAPPER = new ObjectMapper();

String json = MAPPER.writeValueAsString(Object obj);

json转对象

 方式一: 直接转对象,对象中的属性和json格式key 一致。

 Object obj = MAPPER.readValue(json, Object.class);

 方式二:通用(json数据中有集合)

            JsonNode jsonNode = MAPPER.readTree("json");
            ArrayNode jsonNode2 = (ArrayNode) jsonNode.get("data"); // data 是集合名
            for (JsonNode jsonNode3 : jsonNode2) { // jsonNode3 代表集合中的每一个属性
              int a = jsonNode3.get("集合中属性名").asInt();//   asText()....转成相应的类型
            }

例: json直接转对象

 返回的json格式:{
         "status":200,
         "data":{    "id":7,
                     "username":"xiaoxiao",
                    "phone":"13969035106",
                     "email":null,
                     "created":1517574817000,
                     "updated":1517574817000
                 },
         "msg":"ok"
        }

  String map = apiService.doGet("http://sso.taotao.com/sso/user/" + token);
            // map 转  json
            JsonNode jsonNode = MAPPER.readTree(map);
            String jsonUser =jsonNode.get("data").toString();
            System.err.println(jsonUser + "<------------------------");
            return MAPPER.readValue(jsonUser, User.class);

集合通用转换:

 JsonNode jsonNode = PropertiesService.MAPPER.readTree(jsonData);
        //取出总记录数
 //  int total = jsonNode.get("total").asInt();
 //  System.out.println("总记录数: total=" + total);
        ArrayNode arrayNode = (ArrayNode) jsonNode.get("rows");
        List<Map<String,Object>> ad1List =  new ArrayList<Map<String,Object>>();
        for(JsonNode jn : arrayNode){
            Map<String,Object> map = new HashMap<String,Object>();
            String imageUrl = jn.get("url").asText();
            String imagePath = jn.get("pic").asText();
            String title = jn.get("title")==null ? "" : jn.get("title").asText();
            map.put("srcB", imagePath);
            map.put("height",240 );
            map.put("alt", title);
            map.put("width", 670);
            map.put("src", imagePath);
            map.put("widthB",550 );
            map.put("href", imageUrl);
            map.put("heightB",240 );
            ad1List.add(map);
        }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值