JSON解析、转换等操作

本文档介绍了如何使用FastJSON进行JSON解析,包括查找指定数据字段,将JSON字符串转换为实体类,从JSON对象中提取List集合并转化为实体类集合,以及将响应的JSON内容转化为Map类型。
摘要由CSDN通过智能技术生成

1.JSON解析查找指定数据字段

 
			String strData = "{" + "userbean" + ":" + "{" + "Uid" + ":"
					+ "100196" + "," + "Showname" + ":"
					+ "\u75af\u72c2\u7684\u7334\u5b50" + "," + "Avtar"
					+ ":null," + "State" + ":1}" + "}";
 
			JSONTokener jsonParser = new JSONTokener(strData);
			JSONObject person = null;
			try {
				person = (JSONObject) jsonParser.nextValue();
				System.out.println("person=======" + person); // 这里可以成功读取
 
				// String str = person.getString("Showname").toString(); //
				// 这里读取失败
				String uid = person.getJSONObject("userbean").getString(
						"Showname");
				System.out.println("uid==" + uid);
 
				String strUserbean = person.getJSONObject("userbean")
						.getString("Uid");
				System.out.println("str==" + strUserbean);
 
				String sta = person.getJSONObject("userbean")
						.getString("State");
				System.out.println("sta==" + sta);
 
			} catch (JSONException e) {
				e.printStackTrace();
				System.out.println("fail...");
			}

2.JSON字符串转为实体类:

Jar包为:(import com.alibaba.fastjson.JSONObject;)

Map map=new HashMap();

map.put("name","张三");
map.put("age","12");

String  param= JSON.toJSONString(map);

User user= JSONObject.parseObject(param, User.class);

注意:实体类必须包含JSON字符串中的属性字段,如实体类User必须包含name和age字段

3.JSON对象中的List集合取出转为实体类集合

Jar包为:(import com.alibaba.fastjson.JSONArray;)

List<User> userList = JSONArray.parseArray(dept.getUser(),User.class);

4.读取响应的内容,返回结果JSON转成Map类型

​​​​​​​/**
* 读取响应的内容,返回结果JSON转成Map类型
*
* @param body
* @return
*/
public static Map<String, String> ReadResponseBodyContent(String body) {
    HashMap map = new HashMap();
    try {
        JSONObject e = JSON.parseObject(body);
        if (null != e) {
            Iterator i$ = e.entrySet().iterator();
            while (i$.hasNext()) {
                Map.Entry entry = (Map.Entry) i$.next();
                map.put(entry.getKey(), entry.getValue().toString());
            }
        }
    } catch (Exception var6) {
        map.put("errorMessage", body);
    }
    return map;
}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值