您的位置:首页 > Web前端 > JavaScript

json解析之四种基本格式的解析

2015-11-20 11:07 661 查看
public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String str = "";
JSONObject jsonObject = null;
String json = "";

//直接一个对象的解析
json = "{\"username\":\"zms\",\"age\":43,\"addr\":\"江西省高安市村前镇\"}";
try {
jsonObject = new JSONObject(json);
str = "名字:" + jsonObject.getString("username") + " 年龄:" + jsonObject.getString("age") + " 地点:" + jsonObject.getString("addr") + "\n";
Log.d("tech_jsontest", str);
} catch (JSONException e) {
e.printStackTrace();
}

//对象里有数组
str = "";
json = "{\"username\":\"张木生\",age:11,\"jicheng\":[{\"zhengshu\":\"PMP\",\"date\":\"2011年\"},{\"zhengshu\":\"信息系统项目管理师\",\"date\":\"2012年\"}],\"addr\":\"江西\"}";
try {
jsonObject = new JSONObject(json);
str = "名字:" + jsonObject.getString("username") + " 年龄:" + jsonObject.getString("age");
JSONArray jichengArray = jsonObject.getJSONArray("jicheng");
for (int i = 0; i < jichengArray.length(); i++) {
JSONObject jsonJichengObj = (JSONObject) jichengArray.opt(i);
str += " 级称" + String.valueOf(i + 1) + ": 证书:" + jsonJichengObj.getString("zhengshu")
+ " 时间:" + jsonJichengObj.get("date") + "\n";
}
str += " 地点:" + jsonObject.get("addr") + "\n";
Log.d("tech_jsontest", str);
} catch (JSONException e) {
Log.e("tech_jsontest", e.getMessage());
}

//直接一个数组
str = "";
json="[{\"devid\":\"1234567800\",\"latitude\":\"29.4963\",\"longitude\":\"116.189\"},{\"devid\":\"1234567832\",\"latitude\":\"29.4943\",\"longitude\":\"1161.129\"}]";
try {
JSONArray jsonArrDevid = new JSONArray(json);
for (int i = 0; i < jsonArrDevid.length(); i++) {
JSONObject jsonObjDevid = (JSONObject) jsonArrDevid.get(i);
str += "devid" + i + ": " + "编号:" + jsonObjDevid.getString("devid") + " 精度:"
+ jsonObjDevid.getString("latitude") + " 纬度:" + jsonObjDevid.get("longitude")+
"\n";
}
Log.d("tech_jsontest", str);
} catch (JSONException e) {
Log.e("tech_jsontest", e.getMessage());
}

//数组里有数组
str = "";
json="["+
"{\"devid\":\"1234567800\",\"gps\":[{\"time\":\"2014-11-12\",\"latitude\":\"29.4963\",\"longitude\":\"116.189\"},{\"time\":\"2014-11-12\",\"latitude\":\"29.4963\",\"longitude\":\"116.189\" }],\"devname\":\"赣01\"},"+
" {\"devid\":\"1234567800\",\"gps\":[{\"time\":\"2014-11-12\",\"latitude\":\"29.4963\",\"longitude\":\"116.189\"},{\"time\":\"2014-11-12\",\"latitude\":\"29.4963\",\"longitude\":\"116.189\" }],\"devname\":\"赣92\"},"+
" {\"devid\":\"1234567800\",\"gps\":[{\"time\":\"2014-11-12\",\"latitude\":\"29.4963\",\"longitude\":\"116.189\"},{\"time\":\"2014-11-12\",\"latitude\":\"29.4963\",\"longitude\":\"116.189\" }],\"devname\":\"赣43\"}"+
"]";
try {
JSONArray jsonArrdevid = new JSONArray(json);
for (int i = 0; i < jsonArrdevid.length(); i++) {
JSONObject jsonObjdevid = (JSONObject) jsonArrdevid.get(i);
str += "devid" + i + ": 编号:" + jsonObjdevid.get("devid");
JSONArray jsonArrGps = jsonObjdevid.getJSONArray("gps");
for (int j = 0; j < jsonArrGps.length(); j++) {
JSONObject jsonObjGps = (JSONObject) jsonArrGps.get(j);
str += " gps" + j + ": 时间:" + jsonObjGps.get("time")+
" 经度:" + jsonObjGps.getString("latitude") +
" 纬度:" + jsonObjGps.getString("longitude");
}
str += " 名称:" + jsonObjdevid.getString("devname") + "\n";
}
Log.d("tech_jsontest",str);

} catch (JSONException e) {
Log.e("tech_jsontest", e.getMessage());
}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: