android 数据解析
来源:互联网 发布:js结果放入html 编辑:程序博客网 时间:2024/06/05 03:12
一、JSON解析
(一)、两种结构
1、对象:对象在js中表示为“{}”扩起来的内容,数据结构为 {key:value,key:value,...}的键值对的结构
2、数组:数组在js中是中括号“[]”扩起来的内容,数据结构为 ["java","javascript","vb",...]
(二)、相关类
1、JSONObject:可以看作是一个json对象,这是系统中有关JSON定义的基本单元,其包含一对儿(Key/Value)数值
a、toString() :输出一个标准的JSON字符串 如:{"query":"Pizza","locations":[94043,90210]}
b、put():添加值 如:new JSONObject().put("JSON", "Hello, World!")
c、get()、getString()、getInt() <---optType同理--> :得到数据
2、JSONArray:它代表一组有序的数值,对应数据结构的数组
a、get()和opt()两种方法都可以通过index索引返回指定的数值
b、put()方法用来添加或者替换数值
3、JSONStringer:json文本构建类,这个类可以帮助快速和便捷的创建JSONtext。其最大的优点在于可以减少由于格式的错误导致程序异常,引用这个类可以自动严格按照 JSON语法规则(syntax rules)创建JSON text。
如:
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("xinqing");jsonText.key("age");jsonText.value(100);jsonText.key("address");// 键address的值是对象 jsonText.object();jsonText.key("country");jsonText.value("china");jsonText.key("province");jsonText.value("shanghai");jsonText.endObject();jsonText.key("married");jsonText.value(false);//},对象结束jsonText.endObject();System.out.println("jsonText = " + jsonText.toString());} catch (JSONException e) {// TODO Auto-generated catch blockthrow new RuntimeException(e); }
4、JSONTokener:按照RFC4627规范将json文本解析为相应的对象,可用于对JSON的定位与查找
a、nextValue()配合get()方法,获取对象
如:
String JSONstr = //多个""之前加上"\"以防冲突"{" + " \"phone\" : [\"12345678\", \"87654321\"]," + " \"name\" : \"yuanzhifei89\"," + " \"age\" : 100," + " \"address\" : { \"country\" : \"china\", \"province\" : \"jiangsu\" }," +" \"married\" : false," + "}"; try {JSONTokener jsonParser = new JSONTokener(JSONstr);JSONObject person = (JSONObject) jsonParser.nextValue();// 接下来的就是JSON对象的操作了 person.getJSONArray("phone"); person.getString("name"); person.getInt("age"); person.getJSONObject("address"); person.getBoolean("married"); } catch (JSONException e) {// TODO Auto-generated catch blocke.printStackTrace();}
b、其它用来查看JSON文本中的文本的
如:
try {JSONTokener jsonParser = new JSONTokener(JSONstr);// 继续向下读8个json文本中的字符。此时刚开始,即在{处 jsonParser.next(8); //"phone tab算一个字符 jsonParser.next(); //" // 继续向下读取一个json文本中的字符。该字符不是空白、同时也不是注视中的字符 jsonParser.nextClean(); //: // 返回当前的读取位置到第一次遇到'a'之间的字符串(不包括a)。 jsonParser.nextString('a'); // ["12345678", "87654321"], "n(前面有两个空格) // 返回当前读取位置到第一次遇到字符串中(如"0089")任意字符之间的字符串,同时该字符是trimmed的。(此处就是第一次遇到了89) jsonParser.nextTo("0089"); //me" : "yuanzhifei // 读取位置撤销一个 jsonParser.back(); jsonParser.next(); //i // 读取位置前进到指定字符串处(包括字符串) jsonParser.skipPast("address"); jsonParser.next(8); //" : { "c // 读取位置前进到执行字符处(不包括字符) jsonParser.skipTo('m'); jsonParser.next(8); //married" } catch (JSONException e) {// TODO Auto-generated catch blocke.printStackTrace();}
另,使用Google的GSON框架
- Android数据解析:Json解析
- android---Json数据解析
- Android Json 数据解析
- Android解析json数据
- android解析json数据
- Android-解析json数据
- Android Json数据解析
- Android解析JSON数据
- android 数据解析
- Android解析Json数据
- Android json数据解析
- android解析json数据
- android解析JSON数据
- Android解析json数据
- android Json数据解析
- Android---解析XML数据
- android JSON数据解析
- Android 解析 Json 数据
- OpenGL编程指南第十章:Frame buffer
- How to synchronize access to a shared resource in a multithreading environment by using Visual C#
- struts2.2.3配置注意事项
- android timer
- android事件机制之来龙去脉
- android 数据解析
- How to install Java 3d robot simulator
- ViewGroup学习之触摸事件分发
- 中文分词之Java实现使用IK Analyzer实现
- Tomcat部署Web应用方法总结
- Dev GridControl控件绑定数据源,列不显示
- 精讲连连看制作方法
- F5负载均衡算法及基本原理 .
- target is null for setProperty的问题总结