如何从JSON字符串创建JAVA对象?

如何从JSON字符串创建JAVA对象?,java,json,api,gson,Java,Json,Api,Gson,我正在创建一个向API发出GET请求并接收JSON的应用程序,我需要创建一个保存信息的类。这就是我尝试过的: package apiwebapprequest; import com.google.gson.Gson; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.URL; import java.net.URLConnec

我正在创建一个向API发出GET请求并接收JSON的应用程序,我需要创建一个保存信息的类。这就是我尝试过的:

package apiwebapprequest;

import com.google.gson.Gson;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;


public class APIWebAppRequest {


public static void main(String[] args) throws IOException {
    Gson gson = new Gson();
    Object obj = new Object();

    try {   
 URL url = new URL("xxx");
 URLConnection yc = url.openConnection();
 BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream()));
 String inputLine;

 while((inputLine = in.readLine())!= null){
     System.out.println(inputLine);

     in.close();
     gson.toJson(obj,inputLine);




 }

 }catch(Exception e) {System.out.println(e);}



}

}
这是对象类:

package apiwebapprequest;

public class Object {


private String cif;
private String data_creare;

public String getCif() {
    return cif;
}

public void setCif(String cif) {
    this.cif = cif;
}

public String getData_creare() {
    return data_creare;
}

public void setData_creare(String data_creare) {
    this.data_creare = data_creare;
}




}
第29行->gson.toJson(obj,inputLine);这给了我一个错误。你能告诉我怎么做吗?我找不到如何修复它或以其他方式修改它


我的想法是,当我在inputLine中发出请求时,我有json,我想在对象属性中单独保存字段,你应该首先在
while
循环中读取整个响应,然后在
while
循环结束后转换为json。 您可以修改代码,如下所示

StringBuilder sb=新建StringBuilder();
而((inputLine=in.readLine())!=null){
系统输出打印LN(输入线);
sb.追加(inputLine+“\n”);
in.close();
}
toJson(obj,sb.toString());

您应该首先在
while
循环中读取整个响应,然后在
while
循环结束后转换为json。 您可以修改代码,如下所示

StringBuilder sb=新建StringBuilder();
而((inputLine=in.readLine())!=null){
系统输出打印LN(输入线);
sb.追加(inputLine+“\n”);
in.close();
}
toJson(obj,sb.toString());

在while循环之后尝试使用
gson.toJson(obj,inputLine)

假设json是

{
"foo":"bar",
"foo1":"bar1"
}
每一行都不是有效的JSON。
因此,您需要首先读取整个字符串,然后对其进行解析。

在while循环之后尝试使用
gson.toJson(obj,inputLine)

假设json是

{
"foo":"bar",
"foo1":"bar1"
}
每一行都不是有效的JSON。
因此,您需要首先读取整个字符串,然后对其进行解析。

您可以使用Jackson class
com.fasterxml.Jackson.databind.ObjectMapper

以下是如何将json解析为类:

ObjectMapper objectMapper = new ObjectMapper();
MyClass myClass = objectMapper.readValue(json, MyClass.class);

您可以使用Jackson类
com.fasterxml.Jackson.databind.ObjectMapper

以下是如何将json解析为类:

ObjectMapper objectMapper = new ObjectMapper();
MyClass myClass = objectMapper.readValue(json, MyClass.class);

您可以使用以下方法

gson.toJson(obj); // is used to convert object to JSON
如果您想将JSON转换为Java对象,那么可以使用

gson.fromJson(json, Car.class);


您可以使用以下方法

gson.toJson(obj); // is used to convert object to JSON
如果您想将JSON转换为Java对象,那么可以使用

gson.fromJson(json, Car.class);


“它给了我一个错误”-我们应该猜测错误吗?如果您能为我们提供错误消息,您会更容易得到帮助。除此之外,在线上有很多关于如何在Java中读取/解析JSON的资源,例如,检查我的答案,您可以使用fromJson(JSON,Car.class)“它给了我一个错误”-我们应该猜测错误吗?如果您能为我们提供错误信息,您会更容易得到帮助。除此之外,在线上有很多关于如何在Java中读取/解析JSON的资源,例如,检查我的答案您可以使用fromJson(JSON,Car.class)它说没有找到适合toJson的方法,您知道如何使用Gson吗?您能帮我找到正确的方法吗?提前感谢您可以执行
SoModel model=gson.fromJson(sb.toString(),SoModel.class)其中SoModel是java模型类,类似于ServiceJSON响应的结构。它说没有找到适合toJson的方法,你知道如何使用Gson吗?你能帮我找到正确的方法吗?提前感谢您可以执行
SoModel model=gson.fromJson(sb.toString(),SoModel.class)
其中SoModel是类似于服务json响应结构的java模型类。如果您硬编码了值,我如何从包含json的变量中获取?@SECI如果您事先不知道json数据的结构,可以使用,例如
JsonParser.parseString(jsonString)
将返回一个对象,您可以对其进行进一步分析。如果您硬编码了值,我如何从包含json的变量中获取?@SECI如果您事先不知道json数据的结构,您可以使用,例如
JsonParser。parseString(jsonString)
将返回一个对象,然后您可以对其进行进一步分析。