JSON数据解析及gson.jar包
从服务器端接收数据的时候,那些数据必须以浏览器能够理解的格式来发送。
服务器端的编程语言只能以如下 3 种格式返回数据: HTML XML JSON
JSON一种简单的数据格式,比xml更轻巧。
JSON是JavaScript原生格式,这意味着在JavaScript中处理JSON数据不需要任何特殊的API或工具包。
JSON的规则很简单:对象是一个无序的“‘名称:值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’对”之间使用“,”(逗号)分隔。 规则如下: 1)映射用冒号(“:”)表示。名称:值 2)并列的数据之间用逗号(“,”)分隔。名称1:值1,名称2:值2 3) 映射的集合(对象)用大括号(“{}”)表示。{名称1:值1,名称2:值2} 4) 并列数据的集合(数组)用方括号(“[]”)表示。
[
{名称1:值,名称2:值2},
{名称1:值,名称2:值2}
]
元素值可具有的类型:string, number, object, array, true, false, null
JSON 用冒号(而不是等号)来赋值。每一条赋值语句用逗号分开。整个对象用大括号封装起来。
可用大括号分级嵌套数据。 对象描述中存储的数据可以是字符串,数字或者布尔值。对象描述也可存储函数,那就是对象的方法。
使用Java读取Json数据:
import java.io.FileReader;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser; public class JsonDemo {
public static void main(String []args) throws Exception{
JsonParser parser = new JsonParser() ;
JsonObject object = (JsonObject)parser.parse(new FileReader("src//JsonTest//test.json"));
// 解析string
System.out.println("name = "+object.get("name").getAsString());
// 解析数组
JsonArray array = object.get("like").getAsJsonArray();
for(int i=0;i<array.size();i++){
JsonObject arrayObject = array.get(i).getAsJsonObject() ;
System.out.println("id = "+arrayObject.get("id").getAsInt() + " say = "+arrayObject.get("say").getAsString());
}
// 解析bool类型
System.out.println("key = "+object.get("key").getAsBoolean());
}
}
Json文件内容:
{
"name":"奶BerBer",
"like":[
{"id":1,"say":"hello java"},
{"id":2,"say":"hello c++"},
{"id":3,"say":"hello python"}
],
"key":true
}
输出结果:
name = 奶BerBer
id = 1 say = hello java
id = 2 say = hello c++
id = 3 say = hello python
key = true
使用Java创建Json数据:
import com.google.gson.JsonArray;
import com.google.gson.JsonObject; public class JsonDemo {
public static void main(String []args) throws Exception{
JsonObject object = new JsonObject();
object.addProperty("name","奶BerBer") ; JsonArray array = new JsonArray() ; JsonObject lem1 = new JsonObject() ;
lem1.addProperty("id","1");
lem1.addProperty("say","hello java");
array.add(lem1) ; JsonObject lem2 = new JsonObject() ;
lem2.addProperty("id","2");
lem2.addProperty("say","hello c++");
array.add(lem2) ; JsonObject lem3 = new JsonObject() ;
lem3.addProperty("id","3");
lem3.addProperty("say","hello python");
array.add(lem3) ; object.add("like",array) ;
object.addProperty("key","true") ; System.out.println(object.toString());
}
}
运行结果:
{"name":"奶BerBer","like":[{"id":"1","say":"hello java"},{"id":"2","say":"hello c++"},{"id":"3","say":"hello python"}],"key":"true"}
Json包下载: 链接:https://pan.baidu.com/s/1kULUbQ3 密码:s98k
JSON数据解析及gson.jar包的更多相关文章
- JSON数据解析(GSON方式) (转)
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种理想的数据交换格式. 在上一篇博文<Andro ...
- Android JSON数据解析(GSON方式)
要创建和解析JSON数据,也可以使用GSON来完成.GSON是Google提供的用来在Java对象和JSON数据之间进行映射的Java类库.使用GSON,可以很容易的将一串JSON数据转换为一个Jav ...
- JSON数据解析:Gson(谷歌)和fastjson(阿里巴巴)的异同点
Gson和fastjson分别为谷歌和阿里巴巴对JSON数据进行处理封装的jar包 Gson(谷歌)和fastjson(阿里巴巴)两者异同点: 相同点:都是根据JSON数据创建相应的类 不同点: 1. ...
- java解析json数据用到的jar包
百度云连接: https://pan.baidu.com/s/1iuQCc7uBO5XtAsNn6hwCew
- 使用Gson轻松解决复杂结构的Json数据解析
转载请注明来源: http://blog.csdn.net/kjunchen/article/details/50961803 JSON简介 JSON(JavaScript Object Notati ...
- Android学习笔记之JSON数据解析
转载:Android学习笔记44:JSON数据解析 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种 ...
- 截取HTML中的JSON数据并利用GSON进行解析(Android)
截取HTML中的JSON数据并利用GSON进行解析(Android) 前言 最近在做的一个Android项目,需要自行搭建服务器,队友选择买了阿里云的服务器ESC产品,在数据获取上,我们采用了Andr ...
- 最简单简洁高效的Json数据解析
一.无图无真相 二.主要代码 1.导入jar包 拷贝fastjson.jar包到projectlibs包下 2.封装工具类JsonUtil.java package com.example.parse ...
- JSON数据解析 基础知识及链接收集
JSON数据解析学习 JSON介绍 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式. JSON 是存储和交换文本信息的语法.类似 XML.但是JSON 比 ...
随机推荐
- How to set up Dynamics CRM 2011 development environment
Recently I have been starting to learn Microsoft Dynamics CRM 2011 about implement plugin and workfl ...
- 从零开始搭建Vue组件库 VV-UI
前言: 前端组件化是当今热议的话题之一,也是我们在开发单页应用经常会碰到的一个问题,现在我们有了功能非常完善的Element-UI.各个大厂也相继宣布开源XXX-UI.但是也会存在一些问题,比如每个公 ...
- 64位win7下安装Boost 1.59.0 + boost.python 1.59.0 + gccxml + pygccxml + pyplusplus(py++)
由于安装过程中实在是出现了N多问题,所以不得不专门写个帖子来记录一下这破东西在Win7下的安装过程,避免以后还要再用的时候踩坑. 1.Boost简介 Boost库是一个可移植.提供源代码的C++库,作 ...
- Python之os.fork
[参考资料] http://www.01happy.com/python-fork-create-process/ http://www.python-course.eu/forking.php ht ...
- 1.Servlet介绍 和 HTTP协议简述
1. Servlet是什么? sun公司制订的一种用来扩展web服务器功能的组件规范. (1)扩展web服务器功能 注: 早期的web服务器只能处理静态资源的请求,即需要事先将 html文件准备好,并 ...
- python3学习笔记(3)
一.内置函数补充1.callable()检测传递的参数是否可以被调用.def f1() pass可以被调用f2 = 123不可以被调用2.chr()和ord()chr()将ascii码转换成字符,or ...
- csv格式订单下载,完成后伴随邮件通知下载
前言 功能开发中会遇到大量订单下载,而服务器的请求响应时间又配置的很短,导致下载时候请求超时. 这篇文章主要思路:异步查询数据,生成csv文件,放入email中并发送给用户.(异步部分本文不做介绍,配 ...
- powerdesigner 不能自动生成注释的解决方法
解决power designer 不能自动生成注释的解决办法只需要3步: 一.快捷键 Alt+Shift+X 打开脚本编辑器: 二.将下面天蓝色的字体脚本添加到脚本编辑器里面: Option Expl ...
- JavaScript的简单继承实现案例
<html><body><script> //实现JavaScript继承的步骤: //1:写父类 //2:写子类 //3:用Object.create()来实现继 ...
- MySQL的安装(比较详细的安装步骤,包括客户端和服务端的安装,还有环境变量的配置以及使用Windows service启动MySQL)
1.MySQL官网下载操作系统对应的MySQL安装包,解压之后就可以直接使用(免安装). MySQL安装包,一种是MySQL Enterprise Edition (commercial)企业版,还有 ...