JAVA JSON 格式数据转 MAP/LIST

package com.test;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;



/**
 * 说明 json字符串 转成 Map/List
 * 
 */
public class JsonToMap {

	public static void main(String[] args) {
		
		//JSONArray
		String jsonArrayData="[{\"a1\":\"12\",\"b1\":\"112\",\"c1\":\"132\",\"d1\":\"134\"},{\"a2\":\"12\",\"b2\":\"112\",\"c2\":\"132\",\"d2\":\"134\"},{\"a3\":\"12\",\"b3\":\"112\",\"c3\":\"132\",\"d3\":\"134\"}]";
		JSONArray jsonArray = JSONArray.fromObject(jsonArrayData);

		List<Map<String,Object>> mapListJson = (List)jsonArray;
		for (int i = 0; i < mapListJson.size(); i++) {
		    Map<String,Object> obj=mapListJson.get(i);			
		  for(Entry<String,Object> entry : obj.entrySet()){
	              String strkey1 = entry.getKey();
	              Object strval1 = entry.getValue();
	              //System.out.println("KEY:"+strkey1+"  -->  Value:"+strval1+"\n");
	        }
		}
		
		
		
		// JSONObject 
//		String jsonObjectData="{\"data1\":{\"X\":\"12\",\"Y\":\"112\"},\"data2\":{\"X\":\"12\",\"Y\":\"112\"}}";
		String jsonObjectData="{\"CSM\":{\"MAP_ID1\":{\"X\":\"12\",\"Y\":\"112\"},\"MAP_ID11\":{\"X\":\"12\",\"Y\":\"112\"}},\"DM\":{\"MAP_ID2\":{\"X\":\"12\",\"Y\":\"112\"},\"MAP_ID22\":{\"X\":\"12\",\"Y\":\"112\"}}}";
		
		JSONObject jsonObject = JSONObject.fromObject(jsonObjectData);
		Map<String, List> stage_ids = new HashMap<String, List>()	;
		Map<String, Object> mapJson = JSONObject.fromObject(jsonObject);
		
        for(Entry<String,Object> entry : mapJson.entrySet()){
            Object strval1 = entry.getValue();
            System.out.println("第一层 KEY:"+entry.getKey()+"  -->  Value:"+entry.getValue()+"\n");            
            JSONObject jsonObjectStrval1 = JSONObject.fromObject(strval1);            
            Map<String, Object> mapJsonObjectStrval1 = JSONObject.fromObject(jsonObjectStrval1);
            List<String> ids = new ArrayList<String>();
            
	   for(Entry<String, Object> entry1:mapJsonObjectStrval1.entrySet()){
            	System.out.println("第二层 KEY:"+entry1.getKey()+"  -->  Value:"+entry1.getValue()+"\n");
            	ids.add(entry1.getKey());
                Object strval3 = entry1.getValue();
            	JSONObject jsonObjectStrval3 = JSONObject.fromObject(strval3);
            	Map<String, Object> mapJsonObjectStrval3 = JSONObject.fromObject(jsonObjectStrval3);
            	
		    for(Entry<String, Object> entry3:mapJsonObjectStrval3.entrySet()){
            		 System.out.println("第三层 KEY:"+entry3.getKey()+"  -->  Value:"+entry3.getValue()+"\n");
                 	
            	 }
            }
            stage_ids.put(entry.getKey(), ids);
            System.out.println("-------------------------------------");
            System.out.println(stage_ids.get("CSM").toString());
            System.out.println("-------------------------------------");
        }
      
	}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值