Json数据的组装和解析

1、组装成如下形式

{
    "a": "a_value",
    "b": "b_value",
    "c": [
        "c1_value",
        "c2_value"
    ],
    "d": {
        "d1": "d1_value",
        "d2": "d2_value"
    },
    "e": [
        {
            "e1": "e1_value",
            "e2": "e2_value"
        },
        {
            "e3": "e3_value",
            "e4": "e4_value"
        }
    ]
}
点击button生成Json,直接上代码:

private void toJson() {
	JSONObject jsonObject = new JSONObject();
	try {
		//形式1
		jsonObject.put("a", "a_value");
		jsonObject.put("b", "b_value");
		//形式2
		JSONArray json_c = new JSONArray();
		json_c.put("c1_value");
		json_c.put("c2_value");
		jsonObject.put("c", json_c);
		//形式3
		JSONObject json_d = new JSONObject();
		json_d.put("d1", "d1_value");
		json_d.put("d2", "d2_value");
		jsonObject.put("d", json_d);
		//形式4
		JSONArray json_e = new JSONArray();
		JSONObject childer_1 = new JSONObject();
		childer_1.put("e1", "e1_value");
		childer_1.put("e2", "e2_value");
		json_e.put(childer_1);
		JSONObject childer_2 = new JSONObject();
		childer_2.put("e3", "e3_value");
		childer_2.put("e4", "e4_value");
		json_e.put(childer_2);
		jsonObject.put("e", json_e);
	} catch (JSONException e) {
		e.printStackTrace();
	}
	tv.setText(jsonObject.toString());
}


2、将如上json解析出来

private void jsonToString(){
	StringBuffer sb = new StringBuffer(256);
	try {
		//得到类型1
		String a = jsonObject.getString("a");
		String b = jsonObject.getString("b");
		sb.append(a+"\n"+b+"\n");
		//类型2
		JSONArray cArray = jsonObject.getJSONArray("c");
		for (int i = 0; i < cArray.length(); i++) {//将数组中的内容分别显示出来
			sb.append(cArray.getString(i)+"\n");
		}
		//类型3
		JSONObject d = jsonObject.optJSONObject("d");
		String d1 = d.getString("d1");
		String d2 = d.getString("d2");
		sb.append(d1+"\n"+d2+"\n");
		//类型4
		JSONArray eArray = jsonObject.getJSONArray("e");//得到对应的数组
		JSONObject chileren_1 = eArray.optJSONObject(0);//得到数组中第一段object数据
		String e1 = chileren_1.getString("e1");
		String e2 = chileren_1.getString("e2");
		JSONObject chileren_2 = eArray.optJSONObject(1);//得到数组中第二段object数据
		String e3 = chileren_2.getString("e3");
		String e4 = chileren_2.getString("e4");
		sb.append(e1+"\n"+e2+"\n"+e3+"\n"+e4+"\n");

		tv.setText(sb.toString());

	} catch (JSONException e) {
		e.printStackTrace();
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值