Java解析Json字符串--Map

Json字符串示例:

{
    "age": 20,
    "gender": "male",
    "grades": "三班",
    "name": "苏三",
    "weight": 63.5
}

遇到这样的格式的Json字符串,我们可以将其解析成一个bean,同时我们也可以直接将其解析为Map。

解析成Map比较简单,我们直接来看看解析方法。

第一种方法:

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);
    }
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值