json在数据传输中经常会用到,尤其是在大量数据传输或者异步传输中,下面在互联网上搜集一些使用的例子,总结一下,以供日后的更加熟练。
JSONObject类(往往与JSONArray结合起来用,最常用了)
例子:
package javaJsonAPI;
import org.json.JSONObject;
public class JsonArrayTest {
/*
* 表示我没有在官网http://www.json.org/里面找到json的jar包 ,这里我的解决 方案是下载官网提供的源文件*.java
* 项目里面建了一个名为org.json的package,把源文件都导入进去了,其实和在classpath中导入jar包没有区别
*/
public static void main(String args[]) {
JSONObject jsonObject = new JSONObject({'name':'DarkRake','age':21});
System.out.println(jsonObject.get(name));
System.out.println(jsonObject.get(age));
}
}
JSONArray类 案例:
package javaJsonAPI;
import org.json.JSONArray;
public class JsonArrayTest {
/*
* 表示我没有在官网http://www.json.org/里面找到json的jar包 ,这里我的解决 方案是下载官网提供的源文件*.java
* 项目里面建了一个名为org.json的package,把源文件都导入进去了,其实和在classpath中导入jar包没有区别
*/
public static void main(String args[]) {
String strs[] = { one, two, three };
JSONArray myjson = new JSONArray(strs);
for (int i = 0; i < myjson.length(); i++) {
System.out.println(myjson.getString(i));
}
}
}
JSONObject与JSONArray类结合使用
package javaJsonAPI;
import org.json.JSONObject;
public class JsonArrayTest {
/*
* 表示我没有在官网http://www.json.org/里面找到json的jar包 ,这里我的解决 方案是下载官网提供的源文件*.java
* 项目里面建了一个名为org.json的package,把源文件都导入进去了,其实和在classpath中导入jar包没有区别
*/
public static void main(String args[]) {
String str = {address: {Province: {ProvinceName: 安徽,City: [{CityName: 六安, own: [金安区,舒城] },{CityName: 合肥, own: [肥东,肥西]}]}}};
JSONObject jo = new JSONObject(str);
String ProvinceName = jo.getJSONObject(address)//
.getJSONObject(Province).get(ProvinceName).toString();//
System.out.println(ProvinceName);
String cityName = jo.getJSONObject(address).getJSONObject(Province)//
.getJSONArray(City).getJSONObject(0).get(CityName)//
.toString();
System.out.println( + cityName);
String town1 = jo.getJSONObject(address).getJSONObject(Province)//
.getJSONArray(City).getJSONObject(0).getJSONArray(town)//
.get(0).toString();
System.out.println( + town1);
String town2 = jo.getJSONObject(address).getJSONObject(Province)//
.getJSONArray(City).getJSONObject(0).getJSONArray(town)//
.get(1).toString();
System.out.println( + town2);
}
}
JSONStringer
->快速构建一个JSON串,并可以写入文件中去
基本方法介绍:
JSONStringer是JSONWriter的子类;
JSONStringer一般通过object().key().value().key().value().endObject()进行构造;
JSONString ():构造函数
object()表明开始一个对象,即添加{ ;
endObject()表明结束一个对象,即添加 } ;
array()表明开始一个数组,即添加一个 [ ;
endArray()表明结束一个数组,即添加一个 ] ;
key()表示添加一个key;
value()表示添加一个value;
注意:通过该方法,Object之间的“,”以及Array数组各个value之间的“,”都是自动添加的
简单案例:
package javaJsonAPI;
import org.json.JSONStringer;
public class JsonArrayTest {
/*
* 表示我没有在官网http://www.json.org/里面找到json的jar包 ,这里我的解决 方案是下载官网提供的源文件*.java
* 项目里面建了一个名为org.json的package,把源文件都导入进去了,其实和在classpath中导入jar包没有区别
*/
public static void main(String args[]) {
JSONStringer js = new JSONStringer();
js.array();
js.object();
js.key(name);
js.value(hj);
js.key(age);
js.value(21);
js.endObject();
js.object();
js.key(name);
js.value(darkrake);
js.key(age);
js.value(21);
js.endObject();
js.endArray();
System.out.println(js.toString());
}
}
综合案例:
package javaJsonAPI;
import org.json.JSONArray;
import org.json.JSONObject;
import org.json.JSONStringer;
public class JsonArrayTest {
/*
* 表示我没有在官网http://www.json.org/里面找到json的jar包 ,这里我的解决 方案是下载官网提供的源文件*.java
* 项目里面建了一个名为org.json的package,把源文件都导入进去了,其实和在classpath中导入jar包没有区别
*/
public static void main(String args[]) {
JSONStringer js = new JSONStringer();
// 创建book1
JSONObject book1 = new JSONObject();
book1.put(name, Java);
JSONArray ja1 = new JSONArray();
String str1[] = { LiuWANJUN, XXX };
ja1.put(str1);
book1.put(author, ja1);
book1.put(price, ¥108);
// 创建book2
JSONObject book2 = new JSONObject();
book2.put(name, JavaScript);
JSONArray ja2 = new JSONArray();
String str2[] = { LiSongFeng, CaoLi };
ja2.put(str2);
book2.put(author, ja2);
book2.put(price, ¥108);
js.object();
js.key(Book);
js.array();
js.value(book1);
js.value(book2);
js.endArray();
js.endObject();
System.out.println(js.toString());
}
}
{
Book: [
{
author: [
[
LiuWANJUN,
XXX
]
],
price: ¥108,
name: Java
},
{
author: [
[
LiSongFeng,
CaoLi
]
],
price: ¥108,
name: JavaScript
}
]
}
转换成XML即为:
<book>
LiuWANJUN</author>
XXX</author>
<price>¥108</price>
<name>Java</name>
</book>
<book>
LiSongFeng</author>
CaoLi</author>
<price>¥108</price>
<name>JavaScript</name>
</book>
总结:
1.JSON是一种数据交换的格式,在web项目中具有着广泛的应用,尤其是AJAX一步加载数据,往往都是用json格式的数据,而不是传统的XML;
2.JSON只有两种结构,Object和Array
3.不知道我写的有没有错,我也是参考了别人的学习方案进行学习和理解的,下周有时间,抽空学习前段JSON的应用吧,这里写的主要是Java后台的操作