数据存储(三)--JSON数据处理
JSON是一种轻量级的数据交换格式,具有良好的可读和便于高速编写的特性,从而能够在不同平台间进行数据交换。JSON採用兼容性非常高的文本格式,同一时候也具备类似于C语言体系的行为。JSON能够将Java对象转成json格式的字符串,能够将json字符串转换成Java。比XML更轻量级,Json使用起来比較轻便和简单。JSON数据格式,在Android中被广泛运用于client和server通信,在网络传输数据与解析时非常方便。
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()也是将要获取的键的值转换为指定的类型,无法转换或没有值时返回用户提供或这默认提供的值
数据存储(三)--JSON数据处理的更多相关文章
- python3下scrapy爬虫(第九卷:scrapy数据存储进JSON文件)
将爬取数据存储在JSON文件里并不难,只需修改pipelines文件 直接看代码: 来看下结果: 中文字符恶心的很 之后我会在后卷中做出修改
- Android开发手记(18) 数据存储三 SQLite存储数据
Android为数据存储提供了五种方式: 1.SharedPreferences 2.文件存储 3.SQLite数据库 4.ContentProvider 5.网络存储 SQLite 是以嵌入式为目的 ...
- Python中如何将数据存储为json格式的文件
一.基于json模块的存储.读取数据 names_writer.py import json names = ['joker','joe','nacy','timi'] filename='names ...
- 数据存储之json文件处理和csv文件处理
什么是json: JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式.它基于 ECMAScript (w3c制定的js规范)的一个子集,采用 ...
- Python中如何将数据存储为json格式的文件(续)
将上一篇中的例子,修改一下,将两个程序合二为一,如果存储了用户喜欢的水果就显示它,否则提示用户输入他喜欢的水果并将其存储到文件中. favorite.py import json filename = ...
- android菜鸟学习笔记19----Android数据存储(三)XML文件的解析及序列化
Android内置了PULL解析器的XPP3实现,以及SAX解析器等,可以直接使用PULL或SAX解析XML,直接把JAVA中进行PULL或SAX解析的代码直接拿来用,遗忘的话,可以参考java拾遗1 ...
- python之json数据存储
# 数据存储:json.dump()和json.load() # date:2017-07-17 import json file_name = 'D:/json_file.txt' nums = [ ...
- python数据存储--JSON
HTML正文存储为两种格式:JSON和CSV. 存储为JSON: 首先利用Requests访问http://seputu.com获取HTML文档: #!coding:utf-8 import requ ...
- localStorage和sessionStorage数据存储
var arr=[]; for(var i=0;i<4;i++){ arr[i]=i+i; } console.log(arr.toString()); //将json数据转化为字符串 var ...
随机推荐
- 把自定义控件集成到Qt Designer中
要想在Qt Designer中使用自定义控件,必须要使Qt Designer能够知道我们的自定义控件的存在.有两种方法可以把新自定义控件的信息通知给Qt Designer:“升级(promotion) ...
- js原生 + jQuery实现页面滚动字幕
js原生/jQuery实现页面滚动字幕效果 17:45:49 在新闻列表或者文章列表信息等页面中很容易要求实现字幕滚动的效果,以下为简单的实现页面中滚动字幕的效果 1.jQuery实现页面滚动字幕效果 ...
- cocos2d-x 学习笔记一(概述)
1.游戏-可控制的动画-连续的静态图像 2.关键帧驱动游戏 3.事件驱动型游戏 4.cocos2d-x 1.0 opengl-es 1.0;cocos2d-x 2.x opengl-es 2.0;co ...
- U盘量产的作用
优盘量产:字面意思就是,批量生产优盘.是指批量对U盘主控芯片改写数据,如,写生产厂商信息.格式化等.而用来对U盘完成该操作的软件程序,顾名思义就是U盘量产工具. U盘量产的作用: 电脑正确识别 ...
- paip.vs2010 或.net 4.0安装出错解决大法.
paip.vs2010 或.net 4.0安装出错解决大法. 作者Attilax , EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog.cs ...
- 【floyd求最小环】【Vijos 1046】【观光旅游】
标签:图结构 最短路 题目大意:给你一个无向图,至少经过3个节点的简单回路(不能包括其他环) 一开始的思路:用一个NUM[i][j]表示i到j的最短路经过几个节点,显然解法不太优美,而且还是错的 再想 ...
- Spring IOC的配置使用(转)
转:http://www.cnblogs.com/linjiqin/p/3408306.html Spring IOC的配置使用 1.1.1 XML配置的结构一般配置文件结构如下: <beans ...
- css层叠机制说明
css通过建立与文档的关联而实施效果.文档结构重要性不言而喻,对于建立良好的内容索引.提高可维护性.较好的可访问性:另,利于css选择器选择.继承机制. 概要地讲,层叠机制是处理对文档上应用样式时解决 ...
- gcc 编译和链接
1.现在对两个文件生成可执行文件 //thanks.c #include <stdio.h> int main(void) { printf("Hello World\n&quo ...
- golang Rsa
package models import ( "crypto/rand" "crypto/rsa" "crypto/x509" " ...