JSON解析實例——使用Json-lib

 

JSON解析實例——使用Json-lib

 

Json-lib下載及使用 

  本文介紹用一個類庫進行JSON解析。 html

  工具下載地址:http://sourceforge.net/projects/json-lib/?source=directoryjava

 

  下載後,有這麼三個東東:json

  將第一個Jar包導入項目便可用其中的API。dom

  (具體方法:在項目中創建libs文件夾,將第一個包複製進去,而後在Java Build Path裏面Add External JARs…) ide

  第二個包是文檔,直接右鍵解壓縮以後就會獲得html文檔,入口是index.html,固然也能夠利用工具(jd2chm.exe)將其轉換爲chm格式這樣查看更方便。  工具

  第三個包是源碼,感興趣或者之後碰到問題了能夠看看。測試

 

附加包:解決 Exception in thread "main" java.lang.NoClassDefFoundError 

  導入了上面的包以後,運行程序會拋出運行時異常:Exception in thread "main" java.lang.NoClassDefFoundErrorui

  搜索以後,才知道還要添加另外的包,我是從這裏下載的: this

  http://download.csdn.net/download/guoyongxue/4423006spa

  若是沒有積分,也能夠去個人網盤下載:

  http://pan.baidu.com/share/link?shareid=1066468750&uk=2701745266

  也就是說,一共須要這麼多包:

 

   須要把它們所有加入libs文件夾,而且把它們添加進Build Path中。

 

程序實例:利用Json-lib生成JSON字符串

   時間關係,代碼再也不過多解釋,項目結構如圖:

 

 

其中的類:

package com.shengqishiwind.domain;

public class Person
{
    private int id;
    private String name;
    private String address;

    public Person()
    {
    }

    public Person(int id, String name, String address)
    {
        super();
        this.id = id;
        this.name = name;
        this.address = address;
    }

    public int getId()
    {
        return id;
    }

    public void setId(int id)
    {
        this.id = id;
    }

    public String getName()
    {
        return name;
    }

    public void setName(String name)
    {
        this.name = name;
    }

    public String getAddress()
    {
        return address;
    }

    public void setAddress(String address)
    {
        this.address = address;
    }

    @Override
    public String toString()
    {
        return "Person [id=" + id + ", name=" + name + ", address=" + address
                + "]";
    }

}
Person.java
package com.shengqishiwind.tools;

import net.sf.json.JSONObject;

public class JsonTools
{

    public JsonTools()
    {

    }

    public static String createJsonString(String key, Object value)
    {
        String jsonString = null;

        JSONObject jsonObject = new JSONObject();
        jsonObject.put(key, value);
        jsonString = jsonObject.toString();

        return jsonString;

    }

}
package com.shengqishiwind.service;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.shengqishiwind.domain.Person;

public class JsonService
{
    public JsonService()
    {
    }

    public Person getPerson()
    {
        Person person = new Person(001, "ZhangSan", "Beijing");

        return person;

    }

    public List<Person> getPersonsList()
    {
        List<Person> personsList = new ArrayList<Person>();
        Person person1 = new Person(001, "ZhangSan", "Beijing");
        Person person2 = new Person(002, "LiSi", "Tianjin");
        Person person3 = new Person(003, "WangWu", "Shanghai");

        personsList.add(person1);
        personsList.add(person2);
        personsList.add(person3);

        return personsList;
    }

    public List<String> getStringsList()
    {
        List<String> stringsList = new ArrayList<String>();

        stringsList.add("南京");
        stringsList.add("杭州");
        stringsList.add("承德");
        stringsList.add("哈爾濱");
        stringsList.add("重慶");

        return stringsList;
    }

    public List<Map<String, Object>> getMapsList()
    {
        List<Map<String, Object>> mapsList = new ArrayList<Map<String, Object>>();

        for (int i = 0; i < 3; ++i)
        {
            Map<String, Object> map = new HashMap<String, Object>();

            map.put("id", i);
            map.put("name", "Name_" + i);
            map.put("address", "Address_" + i);

            mapsList.add(map);
        }

        return mapsList;

    }

}

  最後測試的主程序:

package com.shengqishiwind.jsontest;

import com.shengqishiwind.domain.Person;
import com.shengqishiwind.service.JsonService;
import com.shengqishiwind.tools.JsonTools;

public class Test1
{

    public static void main(String[] args)
    {
        String msg = "";

        JsonService service = new JsonService();
        Person person = service.getPerson();

        // 一個Person對象
        msg = JsonTools.createJsonString("aPerson", person);
        System.out.println(msg);

        // 一個List,裏面有若干Person對象
        msg = JsonTools.createJsonString("Persons", service.getPersonsList());
        System.out.println(msg);

        // 一個List,裏面有若干String對象
        msg = JsonTools.createJsonString("StringsList",
                service.getStringsList());
        System.out.println(msg);

        // 一個List,裏面有若干Map對象,每一個Map對象中存儲了若干個鍵值對
        msg = JsonTools.createJsonString("MapsList", service.getMapsList());
        System.out.println(msg);

    }

}

  程序在控制檯輸出以下:

{"aPerson":{"address":"Beijing","id":1,"name":"ZhangSan"}}
{"Persons":[{"address":"Beijing","id":1,"name":"ZhangSan"},{"address":"Tianjin","id":2,"name":"LiSi"},{"address":"Shanghai","id":3,"name":"WangWu"}]}
{"StringsList":["南京","杭州","承德","哈爾濱","重慶"]}
{"MapsList":[{"id":0,"address":"Address_0","name":"Name_0"},{"id":1,"address":"Address_1","name":"Name_1"},{"id":2,"address":"Address_2","name":"Name_2"}]}

 

 

 

參考資料

  老羅Android開發視頻教程。

  本博客上一篇博文:JSON數據解析 基礎知識及連接收集

  Json-lib工具類庫下載地址:

   http://sourceforge.net/projects/json-lib/?source=directory

   http://sourceforge.net/projects/json-lib/files/json-lib/json-lib-2.4/

  附加包下載地址:

   http://download.csdn.net/download/guoyongxue/4423006

  個人百度網盤中所有Json-lib資源下載:

   http://pan.baidu.com/share/link?shareid=1066468750&uk=2701745266

 

   若是以爲有幫助,就點個推薦吧~~~

相關文章
相關標籤/搜索