如何通过在 Java 中使用简单的 JSON 来获取 JSON 数组的值?
How to get the values of a JSONArray by using simple JSON in Java?
我正在尝试获取可以存储到 ArrayList 或数组的 JSONArray 的值。我的代码目前是这样的:
JSONArray params = (JSONArray) res.get("params");
for (int j = 1; j <= params.size(); j++){
Object chatter = params.get(j);
String chatterName = chatter.toString();
System.out.println("ChatterName: "+chatterName);
int index = 2;
listModel.add(index, chatterName);
index++;
}
我的问题是我也拿到了钥匙:
ChatterName: Steve
ChatterName: Blubb
ChatterName: 2
ChatterName: 3
ChatterName: Joey
ChatterName: 4
ChatterName: Chris
这是 JSON 的样子:
Input Stream(Response vom Server): {"statuscode":"200","sequence":1382,"response":"sendWho","params":["1","Steve","Blubb","2","3","Joey","4","Chris"]}
如果您的意思是要将其转换为 ArrayList,请执行以下操作:
JSONArray params = (JSONArray) res.get("params");
ArrayList<String> data = new ArrayList<>(params.size());
for (int j = 0; j < data.size(); j++) {
data.add(params.get(j).toString());
}
您的 JSONArray 未正确创建,因为您的键存储为值。看看:
"params":["1","Steve","Blubb","2","3","Joey","4","Chris"]
你应该像这样构建你的数组
JSONArray list = new JSONArray();
JSONObject obj = new JSONObject();
obj.put("1","Steve");
list.add(obj);
...
JSONObject main = new JSONObject();
main.put("params",list);
如果您想检索您的值
ArrayList<String> arr = new ArrayList<String>();
JSONArray list = (JSONArray) main.get("params");
for(int i=0;i<list.size();i++)
{
arr.add((String)((JSONObject)list.get(i)).get(i)); //because the key is the index in your case
}
//arr contains your values
//you can also convert them to an array by:
String[] myarr =new String[arr.size()];
myarr = arr.toArray(myarr);
好的,我解决了问题。这不是 "json-simple" 问题,而是合乎逻辑的问题。我正在构建一个服务器-客户端聊天应用程序,在输入服务器要求的名称之前,我将一个 id 作为客户端的密钥。但是我忘了删除这个密钥,因此我也得到了密钥。
我正在尝试获取可以存储到 ArrayList 或数组的 JSONArray 的值。我的代码目前是这样的:
JSONArray params = (JSONArray) res.get("params");
for (int j = 1; j <= params.size(); j++){
Object chatter = params.get(j);
String chatterName = chatter.toString();
System.out.println("ChatterName: "+chatterName);
int index = 2;
listModel.add(index, chatterName);
index++;
}
我的问题是我也拿到了钥匙:
ChatterName: Steve
ChatterName: Blubb
ChatterName: 2
ChatterName: 3
ChatterName: Joey
ChatterName: 4
ChatterName: Chris
这是 JSON 的样子:
Input Stream(Response vom Server): {"statuscode":"200","sequence":1382,"response":"sendWho","params":["1","Steve","Blubb","2","3","Joey","4","Chris"]}
如果您的意思是要将其转换为 ArrayList,请执行以下操作:
JSONArray params = (JSONArray) res.get("params");
ArrayList<String> data = new ArrayList<>(params.size());
for (int j = 0; j < data.size(); j++) {
data.add(params.get(j).toString());
}
您的 JSONArray 未正确创建,因为您的键存储为值。看看:
"params":["1","Steve","Blubb","2","3","Joey","4","Chris"]
你应该像这样构建你的数组
JSONArray list = new JSONArray();
JSONObject obj = new JSONObject();
obj.put("1","Steve");
list.add(obj);
...
JSONObject main = new JSONObject();
main.put("params",list);
如果您想检索您的值
ArrayList<String> arr = new ArrayList<String>();
JSONArray list = (JSONArray) main.get("params");
for(int i=0;i<list.size();i++)
{
arr.add((String)((JSONObject)list.get(i)).get(i)); //because the key is the index in your case
}
//arr contains your values
//you can also convert them to an array by:
String[] myarr =new String[arr.size()];
myarr = arr.toArray(myarr);
好的,我解决了问题。这不是 "json-simple" 问题,而是合乎逻辑的问题。我正在构建一个服务器-客户端聊天应用程序,在输入服务器要求的名称之前,我将一个 id 作为客户端的密钥。但是我忘了删除这个密钥,因此我也得到了密钥。