Java中的JSON(带JSON.simple)

Java中的JSON(带JSON.simple),java,json,Java,Json,我试图使用JSON.simple创建一个JSON文件,以满足服务器负载的要求 这些要求是: { "agent": { "name": "String", "version": 1 }, "username": "String", "password": "String", "clientToken": "String" } 而且: { "accessToken": "valid accessToken", "cli

我试图使用JSON.simple创建一个JSON文件,以满足服务器负载的要求

这些要求是:

{
    "agent": {
        "name": "String",
        "version": 1
    },
    "username": "String",
    "password": "String",
    "clientToken": "String"
}
而且:

{
  "accessToken": "valid accessToken",
  "clientToken": "client identifier"   
  "selectedProfile": {                  
    "id": "profile identifier",         
    "name": "String"
  }
}

我看过一些帖子,试图找出如何实现这一点,但我就是做不到。感谢所有帮助:

首先创建一个与json字符串匹配的对象。然后,您可以使用一些json解析器(如或)来读取值。例如,第一个json包含一个内部对象代理。因此,我们可以首先为它创建一个JavaVO,其字段名与json字符串匹配。创建第二个对象来保存所有内容。所以它可以理解为

import java.io.IOException;

import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.gson.Gson;

class Agent {
    private String name;
    private int version;

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getVersion() {
        return version;
    }
    public void setVersion(int version) {
        this.version = version;
    }
    @Override
    public String toString() {
        return "Agent [name=" + name + ", version=" + version + "]";
    }
}

class User {

    private Agent agent;
    private String username;
    private String password;
    private String clientToken;

    public Agent getAgent() {
        return agent;
    }
    public void setAgent(Agent agent) {
        this.agent = agent;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public String getClientToken() {
        return clientToken;
    }
    public void setClientToken(String clientToken) {
        this.clientToken = clientToken;
    }
    @Override
    public String toString() {
        return "User [agent=" + agent + ", username=" + username
                + ", password=" + password + ", clientToken=" + clientToken
                + "]";
    }

}

public class Sample {

    public static void main(String[] args) {
        String json = "{\"agent\":{\"name\":\"String\",\"version\":1},\"username\":\"String\",\"password\":\"String\",\"clientToken\":\"String\"}";

        //Gson way
        Gson gson = new Gson();
        User user = gson.fromJson(json, User.class);
        System.out.println(user);

        //Jackson way
        ObjectMapper mapper = new ObjectMapper();
        try {
            user = mapper.readValue(json, User.class);
        } catch (JsonParseException e) {
            e.printStackTrace();
        } catch (JsonMappingException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        System.out.println(user);
    }

}

转到json.org学习json语法。只需要5-10分钟。然后了解JSON对象本质上等同于Java映射,JSON数组非常类似于Java列表。第二个代码段不是有效的JSON,您可以查看它,只是其中的一部分。先来点。他还有一个物体需要绘制。。他可以从这个例子中学习;酷,我可以试试!