[英]How to convert String to Json
我有一个使用Java的servlet,我想知道如何执行以下操作。
我有一个具有名称值的String变量,并想创建一个Json,该变量类似于{"name": "David"}
。
我该怎么做呢?
我有以下代码,但出现错误:
Serious: Servlet.service () for servlet threw
exception servlet.UsuarioServlet java.lang.NullPointerException
at servlet.UsuarioServlet.doPost (UsuarioServlet.java: 166):
在线
String myString = new JSONObject().put("name", "Hello, World!").toString();
您的确切问题由Chandra描述。 您可以根据他的建议使用JSONObject。 正如您现在所看到的,它的设计师没有考虑属性(例如链接),这些属性使其他语言或库取得成功。
我建议您使用非常好的Google Gson之一。 它使解码和编码都非常容易:
这个想法是,您可以将类定义为:
public class MyClass {
public String name = "Hello, World!";
}
private Gson gson = new GsonBuilder().create();
PrintWriter writer = httpServletResponse.getWriter();
writer.write( gson.toJson(yourObject));
基于Map的json库。 因此, put
基本上返回与此键关联的先前值,该值为null,因此返回null指针异常。( http://docs.oracle.com/javase/1.4.2/docs/api/java/util/HashMap.html #put%28java.lang.Object,%20java.lang.Object%29 )
您可以按照以下方式重写代码来解决此问题。
JSONObject jsonObject1 = new JSONObject();
jsonObject1.put("name", "Hello, World");
String myString = jsonObject1.toString();
我尝试使用GSON ,GSON直接将您的JSONString转换为java类对象。
例:
String jsonString = {"phoneNumber": "8888888888"}
创建一个新类:
class Phone {
@SerializedName("phoneNumber")
private String phoneNumebr;
public void setPhoneNumber(String phoneNumebr) {
this.phoneNumebr = phoneNumebr;
}
public String getPhoneNumebr(){
return phoneNumber;
}
}
//在Java中
Gson gson = new Gson();
Phone phone = gson.fromJson(jsonString, Phone.class);
System.out.println(" Phone number is "+phone.getPhoneNumebr());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.