[英]returning JSON file as JSONArray in Spring Boot
我正在開發一個Spring Boot應用程序,其中有一個JSON屬性文件:
{
data: [
{"firstWebServiceUrl":"http://localhost:8080/firstUrl/"},
{"secondWebServiceUrl":"http://localhost:8080/secondUrl/"},
]
}
我創建了一個控制器來讀取此文件並將其作為org.json.JSONArray
對象返回:
@RestController
@RequestMapping("/Test")
public class MainController {
@RequestMapping(value = "/getJsonProperties", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public JSONArray getJsonProperties() {
Resource resource = new ClassPathResource("/static/configs/properties.json");
InputStream resourceAsStream;
JSONObject jsonObject = null;
JSONArray jsonArray = null;
String resourceAsString = null;
try {
resourceAsStream = resource.getInputStream();
byte[] resourceInBytes = IOUtils.toByteArray(resourceAsStream);
resourceAsString = new String(resourceInBytes);
jsonObject = new JSONObject(resourceAsString);
jsonArray = jsonObject.getJSONArray("data");
System.out.println("json array object is " + jsonArray);
} catch (Exception e) {
e.printStackTrace();
}
return jsonArray;
}
}
當我調用此方法時,我會在控制台中看到輸出(感謝sysout):
json array object is [{"firstWebServiceUrl":"http://localhost:8080/firstUrl/"},{"secondWebServiceUrl":"http://localhost:8080/secondUrl/"}]
如預期的那樣。 但是,當我通過輸入URL從瀏覽器調用此方法時: http://localhost:8090/Test/getJsonProperties
我得到了輸出:
{"empty":false}
而不是內容。 如何退貨?
返回一個String而不是JSONArray,因為沒有默認轉換器可以將JSONArray序列化為JSON字符串:
@RestController
@RequestMapping("/Test")
public class MainController {
@RequestMapping(value = "/getJsonProperties", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public String getJsonProperties() {
Resource resource = new ClassPathResource("/static/configs/properties.json");
InputStream resourceAsStream;
JSONObject jsonObject = null;
JSONArray jsonArray = null;
String resourceAsString = null;
try {
resourceAsStream = resource.getInputStream();
byte[] resourceInBytes = IOUtils.toByteArray(resourceAsStream);
resourceAsString = new String(resourceInBytes);
jsonObject = new JSONObject(resourceAsString);
jsonArray = jsonObject.getJSONArray("data");
System.out.println("json array object is " + jsonArray);
} catch (Exception e) {
e.printStackTrace();
}
return jsonArray != null ? jsonArray.toString() : "[]";
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.