如何将数组转换为json对象?

8

动态地,我收到了一个 array

例如,我们可以考虑下面这个 array

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

但我希望它像这样。
jsonObj={
"poistion1":"logo",
"poistion2":"Details",
"poistion3":"titles"
}

变量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 < mJSONArray.length(); n++) { JSONObject object = mJSONArray.getJSONObject(n); // 做一些事情.... } - ask4solutions
6个回答

4

像这样

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);


4
您可以按照以下方式对数组进行迭代并创建对象。
var jsonObj = {};
for (var i = 0 ; i < sampleArray.length; i++) {
    jsonObj["position" + (i+1)] = sampleArray[i];
}

如果您希望所有的“键”只读取“位置”,该怎么办? - blankface
@ZeroDarkThirty - 不太清楚,请您详细说明一下? - Nikhil Aggarwal

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
@raghavendra 针对此目的有polyfill可用。 - Arun P Johny
问问题的人连循环的基础都不懂。最好我们可以教他们循环的基础知识,这将有助于达到标准。 - Raghavendra
能否请您解释一下什么是 polyfill?它支持 IE6 吗? - Raghavendra
已经是2015年了,我认为现在我们应该不再询问对于官方已死的IE6的支持了...全球仅有约1.7%的用户使用不支持forEach(ECMAScript 5)的浏览器(旧版IE)。 - Kabb5

2
var arr=[
        "logo",
        "Details",
        "titles"
    ];
var result = {};
  for (var i = 0; i < arr.length; ++i){
      result["position" + (i+1)] = arr[i];
 }

1

您可以使用JSON对象:

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

JSON对象还具有JSON转对象的功能:

var anotherObject = JSON.parse(yourString);


输入是一个数组,所需输出为JSON格式,其中包含以下内容:jsonObj={ "poistion1":"logo", "poistion2":"Details", "poistion3":"titles" }您的输出是否正常工作并显示正确的输出?我认为不是。 - Rohan Devaki

0

试一下这个

var obj = {};
var sampleArray=[
        "logo",
        "Details",
        "titles"
    ];

for(var index in  sampleArray) {
     obj['pos' + index] = sampleArray[index];
   }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接