如何打印json字符串?

时间:2016-05-22 16:37:01

标签: 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和用户密钥的链接。 (Zomato API需要一个密钥才能工作)

“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},
(...)
]

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

1 个答案:

答案 0 :(得分:1)

如果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();
}

假设: