java - 如何打印 json 字符串?

标签 java json string printing

我正在做一个学校项目(新手警报),我需要使用 zomato 的网站根据我发送的 ID 获取菜肴的 ID 和名称。这是演示文件中的代码:

WebServiceConnection web = new WebServiceConnection("xxxxxxxxxxxx");
AcessoDados acesso = new AcessoDados("https://api.zomato.com/v1/cuisines.json", web);
String aces = acesso.getCuisines(310);
JSONObject obj = new JSONObject();
System.out.println(obj.get(aces));

这里调用的所有方法都是我们老师制作的。

WebServiceConnection 和 AcessoDados 函数获取 Zomato API 和用户 key 的链接。 (Zomato API 需要 key 才能工作)

“acesso.getCuisines(310)”发送值“310”,方法“getCuisines”应返回一个 json 字符串,其中包含可以在其网站中找到的所有场所(310 是葡萄牙波尔图的 ID) .

但是,它仅在输出中打印“[]”(不带引号)。它应该打印如下内容:

[
{"cuisine_name":"African","cuisine_id":152},
{"cuisine_name":"American","cuisine_id":1},
{"cuisine_name":"Angolan","cuisine_id":951},
{"cuisine_name":"Cafe","cuisine_id":30},
(...)
]

我找不到问题所在,或者我是否犯了任何明显的错误。我在这里遗漏了什么吗?

最佳答案

如果 System.out.println(aces); 打印 [],则 Zomato 的 API 返回空响应,这意味着 310 不是有效的id。但是,如果 aces 打印非空字符串并且是 JSON 字符串,则以下解决方案应该有效。

您没有解析 Zomato API 收到的 JSON 字符串。相反,您正在创建一个新的空的 JSONObject

尝试执行以下操作:

JSONObject obj = null;
try {
    obj = (JSONArray) JSONValue.parseWithException(aces);
    System.out.println(obj);
} catch (ParseException e) {
    e.printStackTrace();
}

假设:

关于java - 如何打印 json 字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37376878/

相关文章:

java - 保存前未设置关系 ID

javascript - 如果它是 Angular 中的 json 字符串,如何访问 Json 对象元素值

json - ARM Azure Web 应用程序的 createUiDefinition.json

c++ - 用c++检查空格

java - PMD 规则 : How to properly solve this DD-anomaly issue

java - 丰富 :menuitem passing parameter

java - 如果里面 while

Python将多个JSON对象解析为一个对象

python - 如何将此系列字符串转换为一系列数字

regex - 如何在文本编辑器中替换正则表达式的子字符串