我将以下JSON发送到Java程序。我输入了这个配置,以便保留我的订单。我正在使用 org.json 库。
“订购的JSON”
var obj = {
"params":
[
{"base_s" : robot.base.length},
{"base_k" : robot.base.k},
{"base_phi" : robot.base.phi},
{"mid_s" : robot.mid.length},
{"mid_k" : robot.mid.k},
{"mid_phi" : robot.mid.phi},
{"tip_s" : robot.tip.length},
{"tip_k" : robot.tip.k},
{"tip_phi" : robot.tip.phi}
]
};
在我将JSON格式化之前: 原始JSON
var obj = {
base_s : robot.base.length,
base_k : robot.base.k,
base_phi : robot.base.phi,
mid_s : robot.mid.length,
mid_k : robot.mid.k,
mid_phi : robot.mid.phi,
tip_s : robot.tip.length,
tip_k : robot.tip.k,
tip_phi : robot.tip.phi
};
以下Java代码解释了原始的JSON,但是“Ordered”JSON存在问题。
JSONArray nameArray = jsonData.names();
JSONArray valArray = jsonData.toJSONArray(nameArray);
nameArray为["items"]
,valArray为[[{"base_s":0.314},{"base_k":0.0012},{"base_phi":0.436},{"mid_s":0.314},{"mid_k":0.0012},{"mid_phi":0.436},{"tip_s":0.3139},{"tip_k":0.0012},{"tip_phi":0.436}]]
我很好奇我如何“再一次这样做”以便从数组中提取九个数字。所以我得到类似vals = [0.314, 0.0012, 0.436, 0.314, 0.0012, 0.436, 0.3139, 0.0012, 0.436]
的东西,然后我可以变成一个浮点数组。
答案 0 :(得分:1)
对于订购的JSON,您可以尝试类似以下内容
JSONArray results = obj.getJsonArray("params");
for (int i = 0, size = results.length(); i < size; i++){
JSONObject objectInArray = results.getJSONObject(i);
String[] elementNames = JSONObject.getNames(objectInArray);
for (String elementName : elementNames) {
String value = objectInArray.getString(elementName);
// in value you have your double
}
}