您的位置:首页 > 移动开发 > Android开发

Android json数据的解析

2016-05-03 16:09 447 查看
json格式,JavaScript Object Notation的缩写。 和xml一样,是一种描述性语言。

基本根式如下:
名称:数值
{"languages":[
{"id":1,"ide":"eclipse","name":"java"},
{"id":2,"ide":"xcode","name":"swift"},
{"id":3,"ide":"visual studio","name":"c#"}

],
"cat":"it"
}


Android对于json格式数据的解析:

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

// 解析 json 格式数据
try {
InputStream is = getResources().getAssets().open("test.json");
InputStreamReader isr = new InputStreamReader(is, "utf-8");
BufferedReader br = new BufferedReader(isr);

String string;
StringBuilder builder = new StringBuilder();
while ((string = br.readLine()) != null) {
builder.append(string);
}
br.close();
isr.close();

JSONObject root = new JSONObject(builder.toString());
System.out.println(root.getString("cat"));
JSONArray array = root.getJSONArray("languages");
for (int i = 0; i < array.length(); i++) {
JSONObject lan = array.getJSONObject(i);
System.out.println("...........");
System.out.println(lan.getInt("id"));
System.out.println(lan.getString("ide"));
System.out.println(lan.getString("name"));
}
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

// 生成json数据
try {
JSONObject root2 = new JSONObject();
root2.put("cat", "it");

JSONObject lan1 = new JSONObject();
lan1.put("id", 1);
lan1.put("ide", "eclipse");
lan1.put("name", "java");

JSONObject lan2 = new JSONObject();
lan2.put("id", 2);
lan2.put("ide", "xcode");
lan2.put("name", "swift");

JSONObject lan3 = new JSONObject();
lan3.put("id", 3);
lan3.put("ide", "visual studio");
lan3.put("name", "c#");

JSONArray array = new JSONArray();
array.put(lan1);
array.put(lan2);
array.put(lan3);

root2.put("languages", array);
System.out.println(root2);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

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