当前位置: 首页 > 面试题库 >

从Java中的HTTP响应解析JSON数组

饶铭
2023-03-14
问题内容

我正在使用来自Apache的HTTP客户端,并且正在尝试从我从客户端获得的响应中解析JSON数组。

这是我收到的JSON的示例。

 [{"created_at":"2013-04-02T23:07:32Z","id":1,"password_digest":"$2a$10$kTITRarwKawgabFVDJMJUO/qxNJQD7YawClND.Hp0KjPTLlZfo3oy","updated_at":"2013-04-02T23:07:32Z","username":"eric"},{"created_at":"2013-04-03T01:26:51Z","id":2,"password_digest":"$2a$10$1IE6hR4q5jQrYBtyxMJJBOGwSPQpg6m5.McNDiSIETBq4BC3nUnj2","updated_at":"2013-04-03T01:26:51Z","username":"Sean"}]

我正在使用http://code.google.com/p/json-simple/作为json库。

        HttpPost httppost = new HttpPost("SERVERURL");
        httppost.setEntity(input);
        HttpResponse response = httpclient.execute(httppost);
        BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()))

        Object obj=JSONValue.parse(rd.toString());
        JSONArray finalResult=(JSONArray)obj;
        System.out.println(finalResult);

这是我尝试过的代码,但是没有用。我不太确定该怎么办。任何帮助表示赞赏,谢谢。


问题答案:

BufferedReader rd = new BufferedReader(new
InputStreamReader(response.getEntity()。getContent()))对象obj =
JSONValue.parse(rd.toString());

rd.toString()不会给您与InputStream相对应的内容response.getEntity().getContent()。相反,它给出toString()BufferedReader对象的表示形式。尝试在控制台上打印它,以查看它是什么。

相反,您应该从读取数据BufferedReader,如下所示:

StringBuilder content = new StringBuilder();
String line;
while (null != (line = br.readLine()) {
    content.append(line);
}

然后,您应该解析内容以获取JSON数组。

Object obj=JSONValue.parse(content.toString());
JSONArray finalResult=(JSONArray)obj;
System.out.println(finalResult);


 类似资料:
  • 问题内容: 我试图从下面的curl输出中获取说“ ip”的值: 我在互联网上发现了许多示例来解析curl请求的json输出,并且编写了以下代码,但这似乎并没有给我说“ ip”的值 如果有人可以向我提示我需要添加到代码中以获得“ ip”值的提示,我将不胜感激。 问题答案: 您可以创建结构来模仿json结构,然后对json进行解码。 输出为: 通过将其解码为一个结构,您可以循环遍历任何切片,而不会局限

  • 嘿,我正在用kotlin中的html标记处理json响应。我不明白如何解析html标记作为响应。我试着与改装和moshi合作。我的回答如下 回应 我想在文本视图中显示。 我们可以在android中做吗?

  • 问题内容: 我正在使用CURL发送请求。响应数据类型为。如何解析此数据并将其插入数据库? JSON输出: 问题答案: 如果您的变量是字符串json之类的,则必须使用function将其解析为 对象 或 数组 : 输出值 现在,您可以将变量作为数组使用: 参考文献: json_decode -PHP手册

  • 问题内容: 我想解析以下Json响应: 我尝试使用SIMPLE JSON解析器,但这对我不起作用: 问题答案: 输出: 评论: 我没有添加验证 [编辑] 加载json字符串的其他方法

  • 问题内容: 我的服务器中有一个“ test.ini”文件,包含以下文本: 我正在尝试通过服务获取此文件的内容,这是我的功能的一部分: 此操作收到了一个Angular异常(SyntaxError:意外令牌A)。 我打开了Angular框架文件,然后找到了例外: 因为文本文件的内容以“ [ ] 开头,以“ ] ” 结尾,因此Angular“认为”是一个JSON文件。 这是Angular代码( 1.2.

  • 问题内容: 我正在编写一个网络类,并希望能够解析对不同类的不同响应(仍然存在一对一的关系,但是我想拥有一个可以处理来自不同端点的所有响应的单个类,并具有预期的 classType 我应该映射到): 但是如果我写的话就会出错 更新 :可能更好的选择是将方法添加到类: 但是仍然存在相同的类型错误。 问题答案: 您应该将反序列化与应用程序的其他部分分开。您不能为所有响应实现一种方法,但是响应数量可能有限