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 比 ...
随机推荐
- 学习笔记TF060:图像语音结合,看图说话
斯坦福大学人工智能实验室李飞飞教授,实现人工智能3要素:语法(syntax).语义(semantics).推理(inference).语言.视觉.通过语法(语言语法解析.视觉三维结构解析)和语义(语言 ...
- 混合app
cordova run android 把应用发送到手机 ionic serve 电脑浏览器调试命令 创建: cordova create hello co ...
- HTML资源定位器-URL
URL 也被称为网址. URL 可以由单词组成,比如 "www.baidu.com",或者是因特网协议(IP)地址:192.168.1.253. URL - Uniform Res ...
- 一个“”字引发的痛苦经历
(一篇老文章,还有点价值,特意整理了一下.由于涉及客户项目,已经进行了脱敏处理) 1 写在前面的话 虽然这个问题是有解决方案的,但我不建议大家提供给客户,理由见此. 2 问题描述 2010.10.12 ...
- struts2 中文乱码问题,自定义过滤器通用解决方法
问题描述 在JSP中使用form表单向后台action中传递中文参数,后台action接收到参数出现中文乱码.JSP页面统一采用了utf-8编码格式.由于struts2默认采用的编码为utf-8,根据 ...
- ubuntu 14.04搭建PHP项目基本流程
首先准备需要安装东西的列表1.apache服务器,2.php,3.mysql,4.几个软件包的链接包,安装方式是以apt-get方式安装; 1.安装apache服务器: apt-get install ...
- Debian6单用户模式
开始的时候按"e"进入Grub的编辑界面,这个时候要找:linux /boot/vmlinuz-2.6.32-5-amd64 root=UUID=.......... ro qui ...
- Python解决 从1到n整数中1出现的次数
最近在看<剑指Offer>,面试题32的题目:输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数.例如输入12,从1到12这些整数中包含1的数字有1.10.11和12,1一共出 ...
- AutoMapper IIS回收引发的 未将对象引用设置到对象实例
一.前言 最近使用AutoMapper的时候,一段时间久会产生System.NullReferenceException:未将对象引用设置到对象的实例.这个问题.后来通过测试,发现部署在IIS上的站点 ...
- tornado+WSGI+Apache
1.原理 2.安装mod_wsgi http://pan.baidu.com/s/1sjsccWH configure的时候会找对应的python脚本,默认是/usr/bin/python 生成mod ...