json 在java 中的应用

来源:互联网 发布:淘宝卷皮折扣网 编辑:程序博客网 时间:2024/05/17 18:11

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后台的操作

0 0