【问题标题】:Transform JSONArray into array of JSONObject将 JSONArray 转换为 JSONObject 数组
【发布时间】:2012-06-06 10:07:55
【问题描述】:

我有 JSONArray 如下:

[["title","details"],["abc","xyz"],["abc2","xyz2"]]

如何使用 Java /JavaScript 转换为 JSONObject 数组,如下所示?

[ { 'title': abc,  'details':xyz,}, {'title': abc2, 'details':xyz2}]

【问题讨论】:

  • 你真的要使用java吗???
  • 是的,使用现有的 Java 库形式 org.json 或 jQuery。
  • jQuery 不是 java 库!!!1!11

标签: java json


【解决方案1】:

以下代码是从解决方案 here 修改的,以允许传递多个值数组。

function makeObject(keys, array) {
    var output = [];
    for (var o = 0; o < array.length; o++) {
        var object = {};
        for (var i = 0; i < array[o].length; i ++ ) {
         object[keys[i]] = array[o][i];
        }
        output.push(object);
    }
    return output;
}

// input array
var array = [["title","details"],["abc","xyz"],["abc2","xyz2"]];    

// extract keys leaving only values in array
var keys = array.shift();

// build object
var output = makeObject(keys, array);

示例:http://jsfiddle.net/u54tT/1/

【讨论】:

  • 谢谢,非常有帮助的答案。我一直在寻找 JQuery 的实现,并没有注意到 JS 仍然能够转换为 json。
【解决方案2】:

我现在已经找到了解决方法。仍在寻找内置功能或具体实现。

String inputStr = "[[\"title\",\"details\"],[\"abc\",\"xyz\"],[\"abc2\",\"xyz2\"]]";

try {
    JSONArray inputArray = new JSONArray(inputStr);
    JSONArray outputArray = new JSONArray();

    for (int i = 0; i < inputArray.length(); i++) {
        JSONArray inArr = inputArray.getJSONArray(i);
        for (int j = 0; j < inArr.length(); j++) {
            if (i != 0) {
                outputArray.put(new JSONObject().put(
                        inputArray.getJSONArray(0).getString(j), inArr.get(j)));
            }
        }
    }
    System.out.println("outputArray = " + outputArray.toString());
} catch (JSONException jse) {
    System.out.println("jse = " + jse.toString());
}

输出:

outputArray = [{"title":"abc"},{"details":"xyz"},{"title":"abc2"},{"details":"xyz2"}]

【讨论】:

    【解决方案3】:

    如果我正确理解了这项任务,那么没有任何方法可以完成这项工作,因为这似乎有点不重要。所以你应该编写自己的转换..

    【讨论】:

      【解决方案4】:

      这就是你要找的吗?

      jQuery.parseJSON( json ) Returns: Object
      

      描述:采用格式良好的 JSON 字符串并返回生成的 JavaScript 对象。 http://api.jquery.com/jQuery.parseJSON/

      【讨论】:

      • 我正在寻找解析数组。请参考上面的问题。
      猜你喜欢
      • 2016-06-05
      • 2019-08-17
      • 2011-11-03
      • 2018-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多