【问题标题】:Java parse ObjectJava解析对象
【发布时间】:2016-06-11 18:30:32
【问题描述】:

我有一个 javascript 对象,我通过 ajax 传回 java:

var jsonData = {   
        "testJson" : "abc",  
        "userId" : "123" 
}; 

当我打印地图时,它看起来像:

key: jsondata value:[object Object]

如何正确解析对象?

【问题讨论】:

  • 了解解析 json 对象
  • 除了传递给 java 的字符串中的对象外,不要包含任何内容。 { ... }
  • 这是一个javascript还是java问题?在 javascript 中,发布的代码定义了一个名为 jsonData 的对象。在传回服务器之前,需要将其转换为字符串(使用 JSON.stringify)。
  • @Traktor53。那是我的问题...在将对象发送回去之前我没有将其转换为 json...谢谢

标签: javascript java json ajax


【解决方案1】:

您可以在 java 中使用 GSON:

class MyObject() {
  String testJson;
  String userId;

  public void setTestJson(String testJson) {
    this.testJson=testJson;
  }
  public String getTestJson() {
    return testJson;
  }
  ... Same for userId
}

And then create a GSON object:

class SomeClass {
  public void parseMyJson(String json) {
    Gson gson=new Gson();
    MyObject mo=gson.fromJson(json,MyObject.class);
  }
}

其中mo 现在包含您的 json 对象,仅使用 getter 和 setter

【讨论】:

    【解决方案2】:

    我希望,这可以帮助你: int userId = object.getInt("userId");

    https://docs.oracle.com/javaee/7/api/javax/json/JsonObject.html

    【讨论】:

      【解决方案3】:

      正如发布的那样,代码定义了一个名为 jsonData 的 javascript 对象。这可以在传递回服务器之前转换为字符串(使用 JSON.stringify ):

      var jsonData = {   
          "testJson" : "abc",  
          "userId" : "123" 
      };
      var jsonString = JSON.stringify( jasonData);
      

      或者在简单的情况下直接定义 JSON 字符串:

      var jsonString = `{"testJson" : "abc",  "userId" : "123" }';
      

      【讨论】:

        猜你喜欢
        • 2014-10-17
        • 2016-02-17
        • 2016-10-17
        • 2016-12-02
        • 2016-10-27
        • 1970-01-01
        • 2021-08-10
        相关资源
        最近更新 更多