有机肥

绿色

JSON字符串转换JAVA对象例子。

package com.demo.json;

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

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

import org.json.simple.JSONValue;

public class JsonTest
{
    public static void main(String[] args)
    {
        // -----------------------------------------------------------------------------
        // Object 2 JSON
        List<Peoper> peopers = new ArrayList<Peoper>();
        Peoper p1 = new Peoper("001", "Taki", "中国");
        Peoper p2 = new Peoper("002", "DSM", "China");
        peopers.add(p1);
        peopers.add(p2);
        String result = JsonTool.getJsonString("Peopers", peopers);
        System.out.println("JSON: " + result);

        // 解析PHP json_encode 字符串
        String jsonStr = "{\"Name\":\"\u5e0c\u4e9a\",\"Age\":20}";
        Object obj = JSONValue.parse(jsonStr);
        System.out.println(obj);
        System.out.println();

        // -----------------------------------------------------------------------------
        // JSON 2 Object
        String jsonString = "["
                + "{\"author\":\"7\",\"id\":358,\"title\":\"Japan\",\"pictures\":[{\"description\":\"001\",\"imgPath\":\"/cms/u/cms/www/201203/05150720ii68.jpg\"},{\"description\":\"002\",\"imgPath\":\"/cms/u/cms/www/201203/05150720ii67.jpg\"}],\"path\":\"ip\"},"
                + "{\"author\":\"8\",\"id\":359,\"title\":\"China\",\"pictures\":[{\"description\":\"101\",\"imgPath\":\"/cms/u/cms/www/201203/111111111111.jpg\"},{\"description\":\"102\",\"imgPath\":\"/cms/u/cms/www/201203/222222222222.jpg\"}],\"path\":\"ip\"}]";
        JSONArray array = JSONArray.fromObject(jsonString);

        // Content.class包含pictures.class,需要设置这个参数
        Map<String, Class<pictures>> classMap = new HashMap<String, Class<pictures>>();
        classMap.put("pictures", pictures.class);

        Object[] objs = new Object[array.size()];
        for (int i = 0; i < array.size(); i++)
        {
            JSONObject jsonObject = array.getJSONObject(i);
            objs[i] = (Content) JSONObject.toBean(jsonObject, Content.class, classMap);
        }
        // 转换Content,循环输出所有content
        for (int i = 0; i < objs.length; i++)
        {
            Content content = (Content) objs[i];
            System.out.println("author:" + content.getAuthor() + " ID:"
                    + content.getId() + " Title:" + content.getTitle() + " Path:" + content.getPath());

            // 转换pictures,循环输出所有picture
            List<pictures> pictures = content.getPictures();
            for (int n = 0; n < pictures.size(); n++)
                System.out.println("description:"
                        + pictures.get(n).getDescription() + " imgPath:" + pictures.get(n).getImgPath());
        }
    }
}
package com.demo.json;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

import net.sf.json.JSONObject;


public class JsonTool
{
    public static String getJsonString(Object key, Object value)
    {
        //System.out.println("key: " + key);
        //System.out.println("value: " + value.toString());
        JSONObject obj = new JSONObject();
        obj.put(key, value);    //添加物件
        return obj.toString();    //转换为字符串并返回
    }
    
    //解析PHP json_encode 字符串
    public static String unescapeUnicode(String str)
    {
        StringBuffer b=new StringBuffer();
        Matcher m = Pattern.compile("\\\\u([0-9a-fA-F]{4})").matcher(str);
        while(m.find())
        {
            b.append((char)Integer.parseInt(m.group(1),16));
        }
        return b.toString();
    }
}
package com.demo.json;

public class People
{
    public People()
    {                
    }
    
    public People(String id, String name, String address)
    {        
        this.id = id;
        this.name = name;
        this.address = address;
    }

    private String id;
    private String name;
    private String address;
    
    public String getId() {
        return id;
    }

    public void setId(String 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;
    }
    
    public String toString()
    {
        return "ID:" + this.id + " Name:" + this.name + " Address:" + this.address;
    }
}
package com.demo.json;

import java.util.List;

public class Content {
    
    private String author;
    private String id;
    private String title;
    private List<pictures> pictures;
    private String path;

    public String getAuthor() {
        return author;
    }

    public void setAuthor(String author) {
        this.author = author;
    }

    public String getId() {
        return id;
    }

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

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public List<pictures> getPictures() {
        return pictures;
    }

    public void setPictures(List<pictures> pictures) {
        this.pictures = pictures;
    }

    public String getPath() {
        return path;
    }

    public void setPath(String path) {
        this.path = path;
    }
}

package com.demo.json;

public class pictures {
    private String description;
    private String imgPath;

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public String getImgPath() {
        return imgPath;
    }

    public void setImgPath(String imgPath) {
        this.imgPath = imgPath;
    }
}

posted on 2016-09-18 17:52 有机肥 阅读(220) 评论(0)  编辑  收藏

<2016年9月>
28293031123
45678910
11121314151617
18192021222324
2526272829301
2345678

导航

统计

常用链接

留言簿

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜