Json 生成与解析
JSON常用与服务器进行数据交互,JSON中“{}”表示JSONObject,“[]”表示JSONArray
如下json数据:
1 {"singers":[
2 {"id":"02","name":"tom","gender":"男","tel":["123456","789012"]},
3 {"id":"03","name":"jerry","gender":"男","tel":["899999","666666"]},
4 {"id":"04","name":"jim","gender":"男","tel":["7777","5555"]},{"id":"05","name":"lily","gender":"女","tel":["222222","111111"]}
5 ]}
生成json数据代码:
public String buildJson() throws JSONException {
JSONObject persons = new JSONObject();
JSONArray personArr = new JSONArray();
JSONObject person = new JSONObject();
person.put("id", "02");
person.put("name", "tom");
person.put("gender", "男");
JSONArray tel = new JSONArray();
tel.put("123456");
tel.put("789012");
person.put("tel", tel);
personArr.put(person);
JSONObject person2 = new JSONObject();
person2.put("id", "03");
person2.put("name", "jerry");
person2.put("gender", "男");
JSONArray tel2 = new JSONArray();
tel2.put("899999");
tel2.put("666666");
person2.put("tel", tel2);
personArr.put(person2);
JSONObject person3 = new JSONObject();
person3.put("id", "04");
person3.put("name", "jim");
person3.put("gender", "男");
JSONArray tel3 = new JSONArray();
tel3.put("7777");
tel3.put("5555");
person3.put("tel", tel3);
personArr.put(person3);
JSONObject person4 = new JSONObject();
person4.put("id", "05");
person4.put("name", "lily");
person4.put("gender", "女");
JSONArray tel4 = new JSONArray();
tel4.put("222222");
tel4.put("111111");
person4.put("tel", tel4);
personArr.put(person4);
persons.put("singers", personArr);
return persons.toString();
}
解析json数据代码:
private void parseJsonMulti(String strResult) {
try {
JSONArray jsonObjs = new JSONObject(strResult).getJSONArray("singers");
String s = "";
for (int i = 0; i < jsonObjs.length(); i++) {
JSONObject jsonObj = ((JSONObject) jsonObjs.opt(i));
int id = jsonObj.getInt("id");
String name = jsonObj.getString("name");
String gender = jsonObj.getString("gender");
s += "ID号" + id + ", 姓名:" + name + ",性别:" + gender + ",电话:";
JSONArray tel = jsonObj.getJSONArray("tel");
for (int j = 0; j < tel.length(); j++) {
s += tel.getString(j)+"/";
}
s += "\n";
}
tv.setText(s);
} catch (JSONException e) {
e.printStackTrace();
}
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!