首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Java字符串到JSON的转换

Java字符串到JSON的转换
EN

Stack Overflow用户
提问于 2013-11-19 19:32:02
回答 3查看 161.3K关注 0票数 19

我正在从字符串变量中的restful api获取数据,现在我想转换为JSON对象,但在转换时遇到问题,它抛出异常.Here是我的代码:

代码语言:javascript
复制
URL url = new URL("SOME URL");

HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Accept", "application/json");

BufferedReader br = new BufferedReader(new InputStreamReader(
        (conn.getInputStream())));

String output;
System.out.println("Output from Server .... \n");
while ((output = br.readLine()) != null) {
    System.out.println(output);
}

conn.disconnect();


JSONObject jObject  = new JSONObject(output);
String projecname=(String) jObject.get("name");
System.out.print(projecname);

我的字符串包含

代码语言:javascript
复制
 {"data":{"name":"New Product","id":1,"description":"","is_active":true,"parent":{"id":0,"name":"All Projects"}}}

这是我在json中想要的字符串,但它在线程"main“中显示了异常。

代码语言:javascript
复制
java.lang.NullPointerException
    at java.io.StringReader.<init>(Unknown Source)
    at org.json.JSONTokener.<init>(JSONTokener.java:83)
    at org.json.JSONObject.<init>(JSONObject.java:310)
    at Main.main(Main.java:37)
EN

回答 3

Stack Overflow用户

发布于 2014-01-21 11:19:03

当while循环结束时,由于“NullPointerException”为null,您将得到输出。您可以将输出收集到某个缓冲区中,然后使用它,如下所示-

代码语言:javascript
复制
    StringBuilder buffer = new StringBuilder();
    String output;
    System.out.println("Output from Server .... \n");
    while ((output = br.readLine()) != null) {
        System.out.println(output);
        buffer.append(output);
    }
    output = buffer.toString(); // now you have the output
    conn.disconnect();
票数 2
EN

Stack Overflow用户

发布于 2017-03-28 21:27:30

使用ObjectMapper对象将字符串转换为JsonNode:

代码语言:javascript
复制
ObjectMapper mapper = new ObjectMapper();

// For text string
JsonNode = mapper.readValue(mapper.writeValueAsString("Text-string"), JsonNode.class)

// For Array String
JsonNode = mapper.readValue("[\"Text-Array\"]"), JsonNode.class)

// For Json String 
String json = "{\"id\" : \"1\"}";
ObjectMapper mapper = new ObjectMapper();
JsonFactory factory = mapper.getFactory();
JsonParser jsonParser = factory.createParser(json);
JsonNode node = mapper.readTree(jsonParser);
票数 1
EN

Stack Overflow用户

发布于 2013-11-19 19:42:47

您可以使用ObjectMapper将java对象转换为json字符串,而不使用JSONObject

代码语言:javascript
复制
ObjectMapper mapper = new ObjectMapper();
String requestBean = mapper.writeValueAsString(yourObject);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20070382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档