android 解析json(2)
上一篇 /
下一篇 2012-11-12 17:31:59
/ 个人分类:android开发
- try {
- // 所有使用的对象都是用上面创建的对象
- // 将第一个电话号码转换为数值和将名字转换为数值
- phone.getLong(0);
- person.getLong("name"); // 会抛异常,因为名字无法转换为long
- phone.optLong(0); // 代码内置的默认值
- phone.optLong(0, 1000); // 用户提供的默认值
- person.optLong("name");
- person.optLong("name", 1000); // 不像上面那样抛异常,而是返回1000
- } catch (JSONException ex) {
- // 异常处理代码
- }
除了上面的两个类,还可以使用JSONStringer来构建json文本 - try {
- JSONStringer jsonText = new JSONStringer();
- // 首先是{,对象开始。object和endObject必须配对使用
- jsonText.object();
-
- jsonText.key("phone");
- // 键phone的值是数组。array和endArray必须配对使用
- jsonText.array();
- jsonText.value("12345678").value("87654321");
- jsonText.endArray();
-
- jsonText.key("name");
- jsonText.value("yuanzhifei89");
- jsonText.key("age");
- jsonText.value(100);
-
- jsonText.key("address");
- // 键address的值是对象
- jsonText.object();
- jsonText.key("country");
- jsonText.value("china");
- jsonText.key("province");
- jsonText.value("jiangsu");
- jsonText.endObject();
-
- jsonText.key("married");
- jsonText.value(false);
-
- // },对象结束
- jsonText.endObject();
- } catch (JSONException ex) {
- throw new RuntimeException(ex);
- }
json文本解析类JSONTokener 按照RFC4627规范将json文本解析为相应的对象。 对于将json文本解析为对象,只需要用到该类的两个api: 构造函数 public Object nextValue(); - // {
- // "phone" : ["12345678", "87654321"], // 数组
- // "name" : "yuanzhifei89", // 字符串
- // "age" : 100, // 数值
- // "address" : { "country" : "china", "province" : "jiangsu" }, // 对象
- // "married" : false // 布尔值
- // }
-
- private static final String JSON =
- "{" +
- " \"phone\" : [\"12345678\", \"87654321\"]," +
- " \"name\" : \"yuanzhifei89\"," +
- " \"age\" : 100," + <LI style="LIST-STYLE-POSITION: outside !important; BORDER-BOTTOM-STYLE. none; BORDER-LEFT: rgb(209,215,220) 1px solid; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE. none; BACKGROUND-COLOR: rgb(250,250,250); LIST-STYLE-TYPE: decimal-leading-zero; MARGIN: 0px 0px 0px 38px; PADDING-LEFT: 10px; PADDING-RIGHT:
收藏
举报
TAG: