Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从Java库中创建复杂的JSON。格森/杰克逊_Java_Json_Jackson_Gson_Jax Rs - Fatal编程技术网

如何从Java库中创建复杂的JSON。格森/杰克逊

如何从Java库中创建复杂的JSON。格森/杰克逊,java,json,jackson,gson,jax-rs,Java,Json,Jackson,Gson,Jax Rs,我正在开发一个API,它需要类实例化中的JSON对象。我正在用java研究[GSON library][1]。似乎它可以很好地为我服务,因为我需要基于类的JSON(见下文)。这些类的实例将生成JSON输出,如下所示: { "Command": "login", "uid": "123123123", "params": { "username": &quo

我正在开发一个API,它需要类实例化中的JSON对象。我正在用java研究[GSON library][1]。似乎它可以很好地为我服务,因为我需要基于类的JSON(见下文)。这些类的实例将生成JSON输出,如下所示:

 {
  "Command": "login",
  "uid": "123123123",
  "params": {
    "username": "dev_2454",
    "password": "4546845446"
  }
}
{
  "Command": "login",
  "uid": "123123123",
  "params": {
    "username": "dev_2454",
    "password": "4546845446"
  }
}
java类如下所示

public class LoginInfo {
    private String Command;
    private String uid;
    private Params params;
}

public class Params {
    private String username;
    private String password;
}
我不知道如何开始。欢迎任何帮助。任何其他图书馆的例子也值得赞赏。谢谢
[1] :

首先,试着进一步解释这个问题。 但是,使用GSON,使用多文件方法执行以下操作以创建JSON。看看杰克逊做这件事的方式

创建
Params.java

    public class Params {
    private String username;
    private String password;

    public Params(String username, String password) {
        this.username = username;
        this.password = password;
    }
}
创建
LoginInfo.java

public class LoginInfo {
    private String Command;
    private String uid;
    private Params params;

    public LoginInfo(Params userparams, String command, String uid) {
        this.params = userparams;
        Command = command;
        this.uid = uid;
    }
}
在主程序中导入这两个引用

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
并使用以下代码创建JSON:

 import com.google.gson.Gson;
 .
 .
 .
Params params=new Params("dev_2454","4546845446");
LoginInfo loginInfo=new LoginInfo(params,"login","123123123");
Gson gson= new GsonBuilder().setPrettyPrinting().create();
String JSON= gson.toJson(loginInfo,loginInfo.getClass());
System.out.println(JSON);
输出将如下所示:

 {
  "Command": "login",
  "uid": "123123123",
  "params": {
    "username": "dev_2454",
    "password": "4546845446"
  }
}
{
  "Command": "login",
  "uid": "123123123",
  "params": {
    "username": "dev_2454",
    "password": "4546845446"
  }
}
使用多类方法的主要原因是确保将来可以轻松修改代码,并帮助您开发健壮的GSON解析器。类中也可以有空构造函数,但GSON需要有单独的getter和setter才能正确地映射值

但是,如果您有Jackson库,则可以使用以下示例

import com.fasterxml.jackson.databind.ObjectMapper;
 .
 .
 .
Params params=new Params("dev_2454","4546845446");
LoginInfo loginInfo=new LoginInfo(params,"login","123123123");
String JSON= new ObjectMapper().writeValueAsString(argument);
System.out.println(JSON);

祝你好运。

这篇文章你读完整了吗?你能提供更多的细节吗?我补充了细节。我希望它能帮点忙。谢谢!它就像一个符咒。