繁体   English   中英

如何将String转换为Json

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM