数据存储(三)--JSON数据处理
来源:互联网 发布:网络舆情特点 编辑:程序博客网 时间:2024/05/20 14:19
JSON是一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性,从而可以在不同平台间进行数据交换。JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为。JSON可以将Java对象转成json格式的字符串,可以将json字符串转换成Java。比XML更轻量级,Json使用起来比较轻便和简单。JSON数据格式,在Android中被广泛运用于客户端和服务器通信,在网络数据传输与解析时非常方便。
JSONObject--这是系统中有关JSON定义的基本单元,其包含一对儿(Key/Value)数值。
JSONArray--它代表一组有序的数值。将其转换为String输出(toString)所表现的形式是用方括号包裹,数值以逗号”,”分隔(例如:[value1,value2,value3]
JSONStringer--这个类可以帮助快速和便捷的创建JSONtext。其最大的优点在于可以减少由于格式的错误导致程序异常,引用这个类可以自动严格按照JSON语法规则(syntaxrules)创建JSON text。每个JSONStringer实体只能对应创建一个JSON text。
JSONTokener--json解析类
JSONObject--这是系统中有关JSON定义的基本单元,其包含一对儿(Key/Value)数值。
JSONArray--它代表一组有序的数值。将其转换为String输出(toString)所表现的形式是用方括号包裹,数值以逗号”,”分隔(例如:[value1,value2,value3]
JSONStringer--这个类可以帮助快速和便捷的创建JSONtext。其最大的优点在于可以减少由于格式的错误导致程序异常,引用这个类可以自动严格按照JSON语法规则(syntaxrules)创建JSON text。每个JSONStringer实体只能对应创建一个JSON text。
JSONTokener--json解析类
JSONException--json中用到的异常
下面以数据存储(二)中的Book对象用Json格式转为String
public static String ObjectToJsonString(List<Book> books) throws JSONException{JSONStringer stringer = new JSONStringer();stringer.object();stringer.key("books");stringer.array();for(int i=0;i<books.size();i++){stringer.object();stringer.key("book:name").value(books.get(i).getName());stringer.key("book:id").value(books.get(i).getId());stringer.key("book:price").value(books.get(i).getPrice());stringer.key("book:publisher").value(books.get(i).getPublisher());stringer.key("book:count").value(books.get(i).getCount());stringer.endObject();}stringer.endArray();stringer.endObject();return stringer.toString();}
String 转为Book对象
public static List<Book> jsonStringToObject(String str) throws JSONException{List<Book> books = new ArrayList<Book>();JSONTokener jsonTokener = new JSONTokener(str);JSONObject jsonObject = (JSONObject) jsonTokener.nextValue();JSONArray array =jsonObject.getJSONArray("books");for(int i =0;i<array.length();i++){Book book = new Book();JSONObject temp = ((JSONObject) array.get(i));book.setName(temp.getString("book:name"));book.setId(temp.getString("book:id"));book.setPrice(temp.getString("book:price"));book.setPublisher(temp.getString("book:publisher"));book.setCount(temp.optInt("book:count"));books.add(book);}return books;}注:
getXXX()可以将要获取的键的值转换为指定的类型,如果无法转换或没有值则抛出JSONException
optXXX()也是将要获取的键的值转换为指定的类型,无法转换或没有值时返回用户提供或这默认提供的值
5 0
- 数据存储(三)--JSON数据处理
- 数据处理(三)高级部分数据聚合
- 数据存储(三)
- Android网络与数据存储——网络编程数据处理(网络请求解析Json,解析xml)
- Json树形结构数据转Java对象并存储到数据库的实现-超简单的JSON复杂数据处理
- Json树形结构数据转Java对象并存储到数据库的实现-超简单的JSON复杂数据处理 .
- 数据存储(三):SharedPreferences
- ios数据存储(三)
- 数据存储详解(三)---->数据库存储
- Android数据存储(三)---File存储
- localStorage存储JSON数据
- 数据层(数据处理)
- Android数据存储(三)File 数据外部存储
- Android 数据操作(三)Json解析
- JSON数据处理
- json数据处理
- json数据处理
- json数据处理
- Pinterest图片素材
- 仿微信客户端ActionBar设计
- STM32单片机学习(2) 外部中断
- Qt Designer中加载第三方插件Qwt
- 2014/7/14~2014/7/20
- 数据存储(三)--JSON数据处理
- Xilinx zynq zc702学习总结
- EffectNodes for cocos2dx
- 静态通信接口
- iOS:堆(heap)和栈(stack)的理解
- Centos 6.4 安装Python 2.7 python-pip
- Oracle实现split函数
- 最好用的浏览器排行
- Windows 7下用XManager远程控制ubuntu