我正在尝试从 java 中的属性文件中获取 json 数据。
邮件服务器属性
{
"Servers":
[
{
"Name":"Server1",
"UserName":"abcde@yahoo.in",
"Password":"something",
"Port":"993",
"FolderName":"Server1"
},
{
"Name":"Server2",
"UserName":"fghijk@gmail.co",
"Password":"something",
"Port":"993",
"FolderName":"Server2"
}
]
}
当我尝试获取服务器数组时,它显示 The method getJSONArray(String) is undefined for the type JSONObject。如何解决这个问题? 这是我的 Java 代码:-
public void configure()
{
JSONParser parser = new JSONParser();
try
{
String propertyFileName = "emailServer.properties";
InputStream inputStream = getClass().getClassLoader().getResourceAsStream(propertyFileName);
JSONObject jsonObject = (JSONObject) parser.parse(new InputStreamReader(inputStream, "StandardCharsets.UTF_8"));
System.out.println(jsonObject);
JSONArray jadata = jsonObject.getJSONArray("Servers");
System.out.println(jadata);
}
catch (Exception e)
{
e.printStackTrace();
}
}
最佳答案
而不是使用
jsonObject.getJSONArray("服务器")
,
你可以使用
JSONArray jadata =(JSONArray)jsonObject.get("Servers")
这可能会解决您的问题,或者如果您仍然遇到问题,那么您可以使用像 Gson 这样的 google json 库,您可以在 maven 上找到它并使用下面的行:
yourjsonPojo[] data = gson.fromJson(jsonString, yourjsonPojo[].class);
关于java - 我没有在 java 中获取 jsonArray?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57986203/