如何在Java中传递这样的Json

时间:2014-10-07 02:48:29

标签: java json

我跟随Json。请帮我通过Java获取所有组件。

{
    "Result":{
        "results":2,
        "tags":[
            {
                "id":1,
                "name":"かわいい",
                "weight":34
            },
            {
                "id":4,
                "name":"すっぴん",
                "weight":12
            }
        ]
    }
}   

请帮忙!

3 个答案:

答案 0 :(得分:3)

使用以下两个模型类,并将其与JSONObject类映射。

import java.util.List;
import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement(name="Result")
public class Result {

    int results;
    List<Tags> tags;

    public int getResults() {
        return results;
    }
    public void setResults(int results) {
        this.results = results;
    }
    public List<Tags> getTags() {
        return tags;
    }
    public void setTags(List<Tags> tags) {
        this.tags = tags;
    }

    }



import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement(name="tags")
public class Tags {

    int id;
    String name;
    int weight;

    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 int getWeight() {
        return weight;
    }
    public void setWeight(int weight) {
        this.weight = weight;
    }

}

然后使用以下代码,基本上你必须采用json主体并将其分配到json对象中。然后将其分配给模型类

import org.json.JSONObject;

import com.google.gson.Gson;

public class test {

    public static void main(String[] args) throws ClassNotFoundException {


        //Result result = new Result();
        String jsonBody ="  {    \"Result\":{        \"results\":2,        \"tags\":[            {                \"id\":1,                \"name\":\"fghgf\",                \"weight\":34            },            {                \"id\":4,                \"name\":\"fghfgh\",                \"weight\":12            }        ]    }} ";

        JSONObject jsonObject = null;
        jsonObject = new JSONObject(jsonBody);

        for (int x = 0; x < jsonObject.getJSONObject("Result").length(); x++) {

            JSONObject jObject = new JSONObject();
            jObject.put("Result", jsonObject.getJSONObject("Result"));

            String theType = "class path." + "Result";
            Class<?> theClass = Class.forName(theType);

            Gson converter = new Gson();
            Result result = (Result) converter.fromJson(jsonObject.getJSONObject("Result").toString(), theClass);


        }}
    }

您必须获得以下两个导入的依赖项

import org.json.JSONObject;
import com.google.gson.Gson;

答案 1 :(得分:1)

创建名为json的地图。

创建名为result的地图,并使用键&#34;结果&#34;将其插入json

使用键&#34;结果&#34;将值2插入result

创建一个列表,将其命名为tags,然后使用密钥&#34;标记&#34;将其插入result

创建地图,将其称为tagEntry

插入键/值对&#34; id&#34;:1,&#34; name&#34;:&#34;かわいい&#34;,&#34; weight&#34;:34进入tagEntry

tagEntry插入tags

对第二个tagEntry值重复最后3个步骤。 (务必创建 tagEntry地图。)

json序列化为JSON字符串。

(或者你想要走另一条路?如果是这样,那就完全相反了。)

答案 2 :(得分:0)

简单地使用模型类并使用gson依赖关系将json映射到类模型