【问题标题】:Convert JSON String to JSON将 JSON 字符串转换为 JSON
【发布时间】:2018-06-28 14:02:12
【问题描述】:

我正在查询 Postgres DB 以使用 spring data JPA 检索 JSONB 格式数据,该数据存储在 DB 中:

"{
"name":"abc",
"place"="xyz"
}"

但是我在没有双引号的情况下得到了响应,有没有一种方法可以使用 Spring Data JPA 获取双引号或使用双引号转换回 JSON?

我尝试了 new GSON().tJson() 和 ObjectMapper,但没有任何帮助。

谢谢

【问题讨论】:

  • 你能给那个类型的示例模型/bean类吗
  • 仅供参考,JSON is 是一个字符串(JavaScript 对象表示法),您希望将 JSON 转换为对象(实际的 JavaScript 对象)。正如已经在答案中给出的那样,JSON.parse(yourString) 是要走的路。

标签: json gson spring-data-jpa


【解决方案1】:

试试这个代码!

您可以简单地使用 parse 函数将字符串解析为子对象。

    <!DOCTYPE html>
    <html>
    <body>

    <h2>Create Object from JSON String</h2>

    <p id="demo"></p>

    <script>
    var stringTojson='{ "name":"abc", "place":"xyz"}';
    var obj = JSON.parse(stringTojson);


    document.getElementById("demo").innerHTML = obj.name + ", " + obj.place;

    </script>

    </body>
    </html>

【讨论】:

    【解决方案2】:

    您的 JSON 对象格式非常好,您应该没有问题 反序列化 将其返回为 POJO

    假设你的 POJO 类被命名为Template,下面是一个反序列化实现示例:

    public class SerializationTest {
    
        private static final String OBJECT = "{\n"
              + "\"name\":\"abc\",\n"+
              "\"place\"=\"xyz\"\n"+
              "}";
    
        public static void main(String[] args) {
            System.out.println("Serialized object:\n" + OBJECT);
    
            Gson gson = new Gson();
            Template template = gson.fromJson(OBJECT, Template.class);
    
            System.out.println(template);
        }
    
        private static class Template {
    
            private String name;
    
            private String place;
    
            public String getName() {
                return name;
            }
    
            public void setName(String name) {
                this.name = name;
            }
    
            public String getPlace() {
                return place;
            }
    
            public void setPlace(String place) {
                this.place = place;
            }
    
            @Override
            public String toString() {
                return "Template{" +
                      "name='" + name + '\'' +
                      ", place='" + place + '\'' +
                      '}';
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2012-10-06
      • 1970-01-01
      • 2019-08-27
      • 2020-05-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多