java - Java 中的有序 JSON 转换,读取 JSONObjects 的 JSONArray

标签 java arrays json

我正在将以下 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,但对“有序”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] 的东西,然后我可以将其转换为 float 组。

最佳答案

对于有序的 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
  }
}

关于java - Java 中的有序 JSON 转换,读取 JSONObjects 的 JSONArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37422780/

相关文章:

java - java中的Main方法只接受String[]

java - 如何使用 java 与 websphere mq 之间传输/接收文件

C++ 在临时类中创建数组

javascript - 使用 javascript join 和 json.parse 展平数组

java - 线程 "main"org.openqa.selenium.ElementNotVisibleException : Element is not currently visible and so may not be interacted with 中出现异常

java - 为以下内容创建了多少个字符串对象?

javascript - 如何停止 rethinkdb 将对象转换为数组?

javascript - 为什么 JSON.stringify 会忽略值未定义的键?

javascript - JSON 解析在 jQuery 中不起作用

javascript - 在javascript中读取json字符串