JAVA & JSON详解
来源:互联网 发布:小米清空用户数据失败 编辑:程序博客网 时间:2024/06/05 13:33
JSON定义
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、C#、Java、JavaScript、Perl、Python等)。这些特性使JSON成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成(网络传输速率)。
JSON用途
使用基于JavaScript的应用程序,其中包括浏览器扩展和网站
使用JSON格式序列化和结构化的数据传输网络连接
这主要用于服务器和Web应用程序之间的数据传输
Web服务和API采用JSON格式提供公共数据
它可以用来与现代编程语言
JSON的特点
易于读写JSON
轻量级的基于文本的交换格式
独立语言
JSON 语法规则
- 数据在键值对中
- 数据由逗号分隔
- 花括号保存对象
- 方括号保存数组
JSON 名称/值对
{
"firstName"
:
"Brett"
,
"lastName"
:
"McLaughlin"
,
"email"
:
"aaaa"
}
JSON格式支持的数据类型有以下:
以下转自:易百教程网
JSON和Java实体之间的映射
JSON.simple实体映射从左侧向右侧解码或解析,并映射实体从右侧到左侧编码。
虽然解码,默认 java.util.List的具体类是具体类 org.json.simple.JSONArray 和默认 java.util.Map 是org.json.simple.JSONObject。
下面是一个简单的例子来编码JSONObject使用Java的JSON对象的一个子类的java.util.HashMap 无序。如果您需要严格的顺序元素使用方法JSONValue.toJSONString(映射)有序映射实现作为 java.util.LinkedHashMap等。
import
org.json.simple.JSONObject;
class
JsonEncodeDemo
{
public
static
void
main(String[] args)
{
JSONObject obj =
new
JSONObject();
obj.put(
"name"
,
"foo"
);
obj.put(
"num"
,
new
Integer(
100
));
obj.put(
"balance"
,
new
Double(
1000.21
));
obj.put(
"is_vip"
,
new
Boolean(
true
));
System.out.print(obj);
}
}
虽然上述程序的编译和执行,这将产生以下结果:
{
"balance"
:
1000.21
,
"num"
:
100
,
"is_vip"
:
true
,
"name"
:
"foo"
}
以下是另一个例子,它显示了使用Java的JSONObject 的 JSON对象流:
import
org.json.simple.JSONObject;
class
JsonEncodeDemo
{
public
static
void
main(String[] args)
{
JSONObject obj =
new
JSONObject();
obj.put(
"name"
,
"foo"
);
obj.put(
"num"
,
new
Integer(
100
));
obj.put(
"balance"
,
new
Double(
1000.21
));
obj.put(
"is_vip"
,
new
Boolean(
true
));
StringWriter out =
new
StringWriter();
obj.writeJSONString(out);
String jsonText = out.toString();
System.out.print(jsonText);
}
}
虽然上述程序的编译和执行,这将产生以下结果:
{
"balance"
:
1000.21
,
"num"
:
100
,
"is_vip"
:
true
,
"name"
:
"foo"
}
在Java的JSON解码
下面的例子利用的JSONObject 和JSONArray JSONObject 是一个java.util.Map JSONArray是一个java.util.List,所以可以对其进行访问 Map 和List 的标准操作。
import
org.json.simple.JSONObject;
import
org.json.simple.JSONArray;
import
org.json.simple.parser.ParseException;
import
org.json.simple.parser.JSONParser;
class
JsonDecodeDemo
{
public
static
void
main(String[] args)
{
JSONParser parser=
new
JSONParser();
String s =
"[0,{\"1\":{\"2\":{\"3\":{\"4\":[5,{\"6\":7}]}}}}]"
;
try
{
Object obj = parser.parse(s);
JSONArray array = (JSONArray)obj;
System.out.println(
"The 2nd element of array"
);
System.out.println(array.get(
1
));
System.out.println();
JSONObject obj2 = (JSONObject)array.get(
1
);
System.out.println(
"Field \"1\""
);
System.out.println(obj2.get(
"1"
));
s =
"{}"
;
obj = parser.parse(s);
System.out.println(obj);
s=
"[5,]"
;
obj = parser.parse(s);
System.out.println(obj);
s=
"[5,,2]"
;
obj = parser.parse(s);
System.out.println(obj);
}
catch
(ParseException pe){
System.out.println(
"position: "
+ pe.getPosition());
System.out.println(pe);
}
}
}
虽然上述程序的编译和执行,这将产生以下结果:
The 2nd element of array
{
"1"
:{
"2"
:{
"3"
:{
"4"
:[
5
,{
"6"
:
7
}]}}}}
Field
"1"
{
"2"
:{
"3"
:{
"4"
:[
5
,{
"6"
:
7
}]}}}
{}
[
5
]
[
5
,
2
]
- JAVA & JSON详解
- 【Java Web】: JSON 数据格式详解
- Java web json解析交互详解
- Java的JSON处理器fastjson使用详解
- JSON — JSON入门与实战详解 —— JavaScript、Java与JSON互转
- JSON — JSON入门与实战详解 —— JavaScript、Java与JSON互转
- JSON — JSON入门与实战详解 —— JavaScript、Java与JSON互转
- JSON — JSON入门与实战详解 —— JavaScript、Java与JSON互转
- JSON 详解
- JSON详解
- JSON详解
- JSON详解
- JSON详解
- JSON详解
- json 详解
- json详解
- JSON详解
- JSON详解
- BottomNavigationBar的使用
- Oracle Exists用法
- 在AndroidStudio直接运行时百度地图显示,打包成APK,安装在真机上不显示的问题
- [练习]traceroute命令
- 如何打开pr_debug调试信息
- JAVA & JSON详解
- iOS开发:隐藏状态栏的方法
- linux共享内存初体验
- react native Slider 使用详解
- Laravel 服务容器实例教程 —— 深入理解控制反转(IoC)和依赖注入(DI)
- Android中基于ServerSocket的实际使用与简单介绍(内附一个PC端群控多台手机的消息发送和接收Demo)
- Unity Shader 基础知识
- Leetcode044--小朋友分糖比相邻的多
- Android Camera PreviewSize PictureSize SurfaceView之间的关系