如何从JSON字符串创建JAVA对象?
我正在创建一个向API发出GET请求并接收JSON的应用程序,我需要创建一个保存信息的类。这就是我尝试过的:如何从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
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)
将返回一个对象,然后您可以对其进行进一步分析。