在 JSONObject 中转换缓冲 Reader(json-简单)
Convert Buffered Reader in JSONObject (json-simple)
我在 GET 中调用 Rest API,我需要解析响应并获取键的值。
我正在使用:
<dependency>
<groupId>com.googlecode.json-simple</groupId>
<artifactId>json-simple</artifactId>
<version>1.1.1</version>
</dependency>
这是我的代码:
if (responseCode == HttpURLConnection.HTTP_OK) {
BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
StringBuilder sb = new StringBuilder();
while ((readLine = in.readLine()) != null) {
sb.append(readLine);
}
JSONObject jsonObject = new JSONObject(sb.toString());
jsonObject.get();
in.close();
但在JSONObject jsonObject = new JSONObject(sb.toString());
中产生错误
错误:(32, 63) java:不兼容的类型:java.lang.String 无法转换为 java.util.Map
非常感谢。
您应该使用 JSONParser
从字符串中获取数据:
JSONParser parser = new JSONParser();
JSONObject json = (JSONObject) parser.parse(sb.toString());
JSONObject
用于通过toJSONString()
方法将其数据序列化为JSON字符串。
我在 GET 中调用 Rest API,我需要解析响应并获取键的值。 我正在使用:
<dependency>
<groupId>com.googlecode.json-simple</groupId>
<artifactId>json-simple</artifactId>
<version>1.1.1</version>
</dependency>
这是我的代码:
if (responseCode == HttpURLConnection.HTTP_OK) {
BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
StringBuilder sb = new StringBuilder();
while ((readLine = in.readLine()) != null) {
sb.append(readLine);
}
JSONObject jsonObject = new JSONObject(sb.toString());
jsonObject.get();
in.close();
但在JSONObject jsonObject = new JSONObject(sb.toString());
中产生错误
错误:(32, 63) java:不兼容的类型:java.lang.String 无法转换为 java.util.Map
非常感谢。
您应该使用 JSONParser
从字符串中获取数据:
JSONParser parser = new JSONParser();
JSONObject json = (JSONObject) parser.parse(sb.toString());
JSONObject
用于通过toJSONString()
方法将其数据序列化为JSON字符串。