【问题标题】:How to convert String to Json如何将字符串转换为 Json
【发布时间】:2012-06-05 19:36:27
【问题描述】:

我有一个 Java servlet,我想知道如何执行以下操作。

我有一个带有名称值的字符串变量,并希望创建一个 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();

【问题讨论】:

    标签: java json servlets


    【解决方案1】:

    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));
    

    【讨论】:

      【解决方案2】:

      基于 Map 的 json 库。所以,put基本上是返回这个key关联的前一个值,也就是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();
      

      【讨论】:

      • 我赞成你,因为你比我更直接地回答了确切遇到的错误。
      【解决方案3】:

      我尝试使用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());
      

      【讨论】:

        猜你喜欢
        • 2011-03-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-04-04
        • 2016-12-06
        • 2020-05-08
        相关资源
        最近更新 更多