【问题标题】:How to convert Array into json object? [duplicate]如何将数组转换为 json 对象? [复制]
【发布时间】:2015-10-02 15:20:26
【问题描述】:

动态地,我收到了array

例如,我们可以考虑以下array

var sampleArray=[
        "logo",
        "Details",
        "titles"
    ];

但我想要这样的东西。

jsonObj={
"poistion1":"logo",
"poistion2":"Details",
"poistion3":"titles"
}

【问题讨论】:

  • var sampleArray=[ "logo", "Details", "titles" ]; String[] stringArray = Arrays.copyOf(sampleArray, sampleArray.length, String[].class); JSONArray mJSONArray = new JSONArray(Arrays.asList(stringArray)); for(int n = 0; n

标签: javascript jquery arrays json


【解决方案1】:

您可以迭代数组并创建对象,如下所示

var jsonObj = {};
for (var i = 0 ; i < sampleArray.length; i++) {
    jsonObj["position" + (i+1)] = sampleArray[i];
}

【讨论】:

  • 如果你想让所有keys 只读取position 怎么样?
  • @ZeroDarkThirty - 不清楚。能详细点吗?
【解决方案2】:

像这样

var jsonObj = {};

var sampleArray = [
    "logo",
    "Details",
    "titles"
];

for (var i = 0, len = sampleArray.length; i < len; i++) {
    jsonObj['position' + (i + 1)] = sampleArray[i];
}

console.log(jsonObj);

【讨论】:

    【解决方案3】:

    你可以创建一个空对象,然后循环(Array.forEach())数组并赋值

    var sampleArray = [
      "logo",
      "Details",
      "titles"
    ];
    var obj = {};
    sampleArray.forEach(function(value, idx) {
      obj['position' + (idx + 1)] = value
    });
    
    snippet.log(JSON.stringify(obj))
    <script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
    <!-- Provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->

    【讨论】:

    • forEach 在ie较低版本中将不被支持
    • @raghavendra 有 polyfill 用于此目的
    • 提问的人甚至不知道循环的基本知识。更好的是,我们可以教他们基本的循环,这些循环将在标准中得到支持。
    • 请您解释一下polyfill。是否支持ie6?
    • 现在是 2015 年,我想现在我们已经不再询问是否支持已正式死去的 IE6 了……世界上只有大约 1.7% 的人使用不支持 forEach 的浏览器(旧 IE)( ECMAScript 5)
    【解决方案4】:
    var arr=[
            "logo",
            "Details",
            "titles"
        ];
    var result = {};
      for (var i = 0; i < arr.length; ++i){
          result["position" + (i+1)] = arr[i];
     }
    

    【讨论】:

      【解决方案5】:

      试试这个

      var obj = {};
      var sampleArray=[
              "logo",
              "Details",
              "titles"
          ];
      
      for(var index in  sampleArray) {
           obj['pos' + index] = sampleArray[index];
         }
      

      【讨论】:

        【解决方案6】:

        您可以使用 JSON 对象:

        var yourObject = [123, "Hello World", {name: "Frankie", age: 15}];
        var yourString = JSON.stringify(yourObject); // "[123,"Hello World",{"name":"Frankie","age":15}]"
        

        JSON 对象还具有 JSON-to-Object 功能:

        var anotherObject = JSON.parse(yourString);

        【讨论】:

        • 输入是数组,需要的输出是json格式,`jsonObj={ "poistion1":"logo", "poistion2":"Details", "poistion3":"titles" } ` 您的输出是否正常工作并显示正确的输出?我不这么认为
        猜你喜欢
        • 2020-05-02
        • 2021-05-27
        • 1970-01-01
        • 2016-02-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多