如何将字符串转换为JsonObject

41

我正在使用 httprequest 从网络获取Json数据并将其转换为字符串。

这很简单,但我似乎无法将此字符串转换为 javax.json.JsonObject

我该怎么做?


1
请明确问题。我不明白,你想要什么。 - George Rosario
请澄清您的问题,您是否想在Java中获取JSON对象?如果可能,请提供您想要做什么的快照。 - Afzal Ahmad
就像它的字面意思一样:将包含JSON字符串的字符串转换为javax.json.jsonbuilder和nog org.json.JSONBuilder中的jsonObject。 - Revils
请参考我在String to Json中的回答。 - Kumar
4个回答

89
JsonReader jsonReader = Json.createReader(new StringReader("{}"));
JsonObject object = jsonReader.readObject();
jsonReader.close();

请查看文档示例


它可以工作,但我必须从https://jsonp.java.net/download.html导入Json处理API Jar。 - matthewpark319

22

由于上面的评论者不喜欢我的编辑,这里有一些你可以复制粘贴到你自己的代码中:

private static JsonObject jsonFromString(String jsonObjectStr) {

    JsonReader jsonReader = Json.createReader(new StringReader(jsonObjectStr));
    JsonObject object = jsonReader.readObject();
    jsonReader.close();

    return object;
}

1
它可以工作,但我必须导入Json处理API :\ - Moti

-1

我知道这是一个过时的问题,而且这个答案在几年前可能已经不相关了,但是仍然有用。 使用Jackson Library是解决此问题最简单的技术。 Jackson库是一种高效且广泛使用的Java库,可将Java对象映射到JSON和反之。以下语句将代表学生的JSON字符串转换为代表该学生的Java类。

Student student = new ObjectMapper().readValue(jsonString, Student.class);  

-1
使用Jackson将JSON对象的字符串表示解析为JsonNode对象。
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;

public class J {

  public static void main(String[] args) throws JsonProcessingException {
    var json =
        """
          {
            "candle": {
              "heat": 10,
              "color": "orange"
            },
            "water": {
              "heat": 1,
              "color": null
            }
          }
        """;
    ObjectMapper mapper = new ObjectMapper();
    var node = mapper.readTree(json);
    System.out.println(node.toPrettyString());
  }
}

1
问题是如何将字符串转换为 javax.json.JsonObject。我在这个答案中找不到这样的对象。 - yaccob

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接