【问题标题】:How to prepare list dynamically based on json attributes如何根据json属性动态准备列表
【发布时间】:2017-03-21 14:50:03
【问题描述】:

编辑:让我们考虑一下我有 JSON 属性

输入是:

[{id:100,value:"eclispe",json_key:"ide"},{id:101,value:"java",json_key:"prog_lang"}]

预期的输出是:

{"ide":[{"id":100,"name":"eclipse"}],"prog_lang":[{"id":101,"name":"java"}]}

上面显示的这个 JSON 可以根据属性是动态的。

可以增加列表

我将如何找到列表是在请求中有这么多列表。

我们将如何根据需要重新构建为 JSON。

【问题讨论】:

  • 我自己得到了答案 迭代列表并将 json 键推送到 Map Map> obj= new HashMap>();
  • 你能解释一下你需要什么吗?如果我理解,基于标签,您希望将表示 JSON 数组的 String 转换为 JAVA 中的 List。您使用什么库来读取 JSON ?常见的是杰克逊和格森。我认为两者都有生成器来生成Bean

标签: java json list dynamic


【解决方案1】:

试试这个吧:

var data = [
            {id:100,value:"eclispe",json_key:"ide"},
            {id:101,value:"java",json_key:"prog_lang"}
           ];

var newObj = {};
for (var i in data) {
  var jsonKeys = data[i].json_key;
  newObj[jsonKeys] = [];
  var objKeys = Object.keys(newObj);
  if(objKeys[i] == data[i].json_key) {
    data[i].name = data[i].value;
    delete data[i].json_key;
    delete data[i].value;
    newObj[objKeys[i]].push(data[i]);
  } 
}

document.getElementById("showJson").innerHTML = JSON.stringify(newObj);
<div id="showJson"></div>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-02
    • 1970-01-01
    • 2011-10-13
    • 2021-08-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多