手机版

用于爪哇岛的JSON快速入门总结学习

时间:2021-09-12 来源:互联网 编辑:宝哥软件园 浏览:

一、JSON介绍

对象标记法,类似于XML,是一种数据交换格式,比如爪哇产生了一个数据想要给JavaScript,则除了利用可扩展置标语言外,还可以利用JSON

JSON相比可扩展置标语言的优势是表达起来很简单;官网:http://www.json.org/

JSON是创建交互式、快速动态网页应用的网页开发技术中的x(就是可以取代XML);-出自JSON创始人;

注意:JSON并不是一个文档格式,没有*.json的文档,一般JSON格式的文档存在文本文件(文本文件)中,而可扩展置标语言可以是一个标准;

json在线编辑器:http://工具。JB 51。net/tools/JSON/JSON _ editor。html文件的后缀

二、JSON数据结构

JSON有两种数据结构:

(1)地图,也称为对象;{.}

(2)阵列;[.]

也就是说所有的JSON对象都是要以这些形式表示;

1.地图

简单的说就是爪哇中的地图,名称-值对的形式给出,名称和值之间用":"隔开,两个地图之间用","隔开,一般表示形式如下:

{“键1”:“值1”,“键2”:“值2”}

以下为官网的图

2.排列

就是普通意义上的数组,一般形式如下:

[‘arr 1’、‘arr 2’、‘arr 3’];

以下为官网的图

图中的价值可以是

总结:

(1)JSON的数据结构只有两种;

(2)可以嵌套表示,比如排列中可以嵌套目标等;

(3)记住:对象是以{}表示数组是以[ ]表示;

三、JSON与可扩展置标语言互转示例

前面提到任何的可扩展置标语言都能够转换成JSON包;

1.简单可扩展置标语言

可扩展置标语言格式:

姓名小东/姓名20岁/年龄/人JSON格式:

{ '姓名:'xiazdong ','年龄' :20 } 2。复杂可扩展置标语言

可扩展置标语言格式:

章节标题书/标题签名作者姓名=' author-1 '/book title=' book 1 ' price=' $ 11 '/签名签名作者姓名=' author-2 '/book title=' book 2 ' price=' $ 22 '/签名/节JSON格式:

section ' : { ' title ' : ' BOOK ',' signing ' :[{ span style=' white-space : pre/span ' author ' : { ' name ' : ' author-1 ' },' book': { 'title':'book1 ',' price':'$11' },{ ' author ' : { ' name ' :注意:XML中的属性也是通过JSON的地图表示;

四、JSON包

如果我们想要使用JSON包,则可以下载JSON包的源代码,并将这些代码添加进黯然失色工程中,即可调用;

如果想要看应用程序接口文档,可以参见:http://www .JSON.org/java/index.html

JSON包中最常用的两个类就是JSONObject和JSONArray,分别表示两种数据结构;

1.JSONObject代码实例

包裹。com。夏兹东。JSON导入微博4j。组织。JSON。jsonarray导入微博4j。组织。JSON。JSON对象;公共类测试{公共静态void main(String[]args)引发异常{ JSON对象JSON对象=新的JSON对象({ ' name ' : ' xiazdong ',' age ' :20 } ');字符串名称=jsonobj。getString(' name ');int age=jsonobj。GetInt(' age ');System.out.println(名称: '年龄);} } 2.JSONArray代码实例

JSONArray数组=新JSONArray(字符串字符串);//将线转为JSONArrayint长度=数组。length();//返回排列的长度;包裹。com。夏兹东。JSON导入微博4j。组织。JSON。jsonarray导入微博4j。组织。JSON。JSON对象;公共类测试{公共静态void main(String[]args)引发异常{ JSONArray JSONArray=new JSONArray('[{ ' name ' : ' xiazdong ',' age':20 ',{'name':'xzdong ',' age ' :15 }]');for(int I=0;ijsonarray。length();I){ String name=jsonarray。getjsonobject(I).getString(' name ');int age=jsonarray。Getjsonobject(I).getInt(' age ');系统。出去。println(' name=' name ');系统。出去。println(' age=' age ');} } } 3.嵌套JSONObject和JSONArray代码实例

包裹。com。夏兹东。JSON导入微博4j。组织。JSON。jsonarray导入微博4j。组织。JSON。JSON对象;公共类测试{公共静态void main(String[]args)引发异常{ String str=' { ' name ' : ' xiazdong ',' age':20,' book':['book1 ',' book 2 ']';JSON对象obj=新的JSON对象(str);系统。出去。println(obj。getjsonarray(' book ').getString(0));} } 4.JSONStringer代码示例

JSONStringer可以用来快速构建一个JSON格式的文本,并转换成字符串,可以写入文件;JSONStringer是JSONWriter的子类;JSONStringer一般通过对象()。密钥()。值()。密钥()。值()。endObject()进行构造;对象()表明开始一个对象,即添加{ ;endObject()表明结束一个对象,即添加} ;数组()表明开始一个数组,即添加一个[ ;endArray()表明结束一个数组,即添加一个] ;密钥()表示添加一个钥匙;值()表示添加一个价值;

包裹。com。夏兹东。JSON导入微博4j。组织。JSON。jsonstringer公共类JsonStringerDemo { public static void main(String[]args)引发异常{ JSONStringer stringer=new JSONStringer();String str=stringer.object().键('名称')。值(“夏之东”).钥匙('年龄')。值(20)。endObject().toString();系统。出去。println(str);} } 复杂JSON格式写入

包裹。com。夏兹东。JSON导入Java。io。文件;导入Java。io。FileReader导入微博4j。组织。JSON。jsonarray导入微博4j。组织。JSON。JSON对象;导入微博4j。组织。JSON。jsonstringer导入微博4j。组织。JSON。jsontokiner公共类JsonStringerDemo { public static void main(String[]args)引发异常{ JSONStringer js=new JSONStringer();JSON对象obj 2=新的JSON对象();JSON对象obj 3=新的JSON对象();JSON对象obj 4=新的JSON对象();obj4.put('title ',' book1 ').看跌(“价格”,“$ 11”);obj3.put('book ',obj 4);obj3.put('author ',new JSONObject().put('name ',' author-1 ');JSON对象obj 5=新的JSON对象();JSON对象obj 6=新的JSON对象();obj6.put('title ',' book2 ').看跌(“价格”,“$ 22”);obj5.put('book ',obj 6);obj5.put('author ',new JSONObject().put('name ',' author-2 ');JSONArray obj 7=new JSONArray();obj7.put(obj3).放(obj 5);obj2.put('title ',' BOOK ');obj2.put('signing ',obj 7);js.object().密钥('会话')。值(obj2).endObject();系统。出去。println(js。tostring());PrintWriter out=new PrintWriter(新文件outputstream(1。txt));出去。println(js。tostring());} } 以上代码生成了如下JSON格式:

{ ' section ' : { ' title ' : ' BOOK ',' signing ' :[{ ' author ' : { ' name ' : ' author-1 ' },' book': { 'title':'book1 ',' price':'$11' },{ ' author ' : { ' name ' : ' author-2 ' },' book ' :代码示例

JSONTokener是用来读取JSON格式的文件;JSON对象obj=新的JSON对象(新的jsontokiner(Java。io。reader));可以从文件中读取一个JSONObjectJSONArray obj=new JSONArray(new jsontkiner(Java。io。reader));可以从文件中读取一个JSONArray

{ 'name':'xiazdong ',' book':['book1 ',' book 2 ']} package com。夏兹东。JSON导入Java。io。文件;导入Java。io。FileReader导入微博4j。组织。JSON。JSON对象;导入微博4j。组织。JSON。jsontokiner公共类JsonStringerDemo { public static void main(String[]args)引发异常{ JSON对象obj=新JSON对象(新JSONTokener(新文件读取器(新文件(' 1。txt '))))));系统。出去。println(obj。getjsonarray(' book ').getString(1));//可以读取book2 } }复杂JSON格式的读取代码:

{ ' section ' : { ' title ' : ' BOOK ',' signing ' :[{ ' author ' : { ' name ' : ' author-1 ' },' book': { 'title':'book1 ',' price':'$11' },{ ' author ' : { ' name ' : ' author-2 ' },' BOOK ' 3:导入Java。io。文件;导入Java。io。FileReader导入微博4j。组织。JSON。JSON对象;导入微博4j。组织。JSON。jsontokiner公共类JsonStringerDemo { public static void main(String[]args)引发异常{ JSON对象obj=新JSON对象(新JSONTokener(新文件读取器(新文件(' 1。txt '))))));系统。出去。println(obj。getjsonobject(' section ').getJSONArray('签名')。getJSONObject(0).getJSONObject('作者')。getString(' name ');span style='空白: pre '/span/获取作者-1 } }总结:

一在爪哇中JSON格式的线最好用单引号表示;

2.利用JSONObject JSONTokener能够读取JSON格式文件对象;

3.利用PrintWriter JSONStringer可以写入JSON文件;

注:由于原本想要试图用JSONWriter写入,但是没有成功;所以只能利用JSONStringer PrintWriter写入;

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

版权声明:用于爪哇岛的JSON快速入门总结学习是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。