String && JSONObject && JSONArray互相转换

     JSONObject的形式是:{"a":"111","b":"222","c":"3333"}。JSONArray形式是:[1,"b","c"]

    其中JSONObject中可以有JSONArray,形如:{"a":["香蕉","草莓"]};JSONArray中可以有JSONObject,形如:[{"a":"苹果"},{"b":"香蕉"}];

JSONObject:

创建对象:需要注意的是json字符串转成json对象需要加转义字符、并且需要按照固定的格式转化

JSONObject  json = new JSONObject();
json.fromObject("{\"a\":\"值\"}");

map转成JSONObject:

Map<String , String > map=new HashMap<String , String>();
		map.put("a", "11");
		map.put("b", "12");
		System.out.println("map->json:"+JSONObject.fromObject(map));


输出为:   json:{"a":"11","b":"12"}

字符串转成json格式数据:

导包:    import net.sf.json.JSONArray;       import net.sf.json.JSONObject;


String s = "[{\"SEA_TYPE\":\"伙食\",\"SEA_AMOUNT\":\"11\",\"SEA_DESC\":\"100\"},{\"SEA_TYPE\":\"伙食\",\"SEA_AMOUNT\":\"12\",\"SEA_DESC\":\"123\"}]";
		JSONArray json = JSONArray.fromObject(s);
		Object[] os = json.toArray();
		for (int i = 0; i < os.length; i++) {
			JSONObject SEA = JSONObject.fromObject(os[i]);
			System.out.println(Integer.parseInt(SEA.get("SEA_AMOUNT").toString()) * 100);
		}

JSONArray:

创建对象:

String s="[\"a\",\"b\",\"c\"]";
		JSONArray a=JSONArray.fromObject(s);
		System.out.println(a);

输出为:["a","b","c"]

从字符串数组转成JSONArray:

String[] ss=new String[3];
		ss[0]="1";
		ss[1]="2";
		ss[2]="3";
		JSONArray jsonArray=JSONArray.fromObject(ss);
		System.out.println(jsonArray);

输出为:["1","2","3"]

 

总结:

1、字符串转成JSON对象或是JSONArray,都需要严格按照其格式,保证其两边用的是大括号还是中括号。

2、字符串解析时,不用关心JSON中是否有JSONArray或者JSONArry中是否有JSON,按照最外边的括号判断用什么解析之后自动会变成指定的对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值