我将JSON转换为数组并返回单独的JSON对象(它与React和子进程有关)。下面的数组工作正常,将数组元素放入变量中也是如此。但是当我尝试从他们那里做一个obj时,键不起作用,它就像“myKey”一样 - 为什么?将数组元素转换为对象的正确方法是什么?
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var methodOverride = require('method-override');
var fetch = require('isomorphic-fetch');
app.use(bodyParser.json());
app.use(methodOverride());
var promise = new Promise(function(resolve, reject) {
fetch('https://jsonplaceholder.typicode.com/posts/1').then(
function(response){
return response.json();
}
).then(function(jsonData){
result = []
for(var i in jsonData) {
result.push([i, jsonData [i]]);
}
var myKey = result[0][0];
var myValue = result[0][1];
var myJSON = {myKey : myValue}
console.log(myJSON);
});
});
答案 0 :(得分:2)
因为myKey
被解释为值,而不是变量。您需要使用动态密钥语法,即:
{ [myKey] : myValue }
完整代码:
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var methodOverride = require('method-override');
var fetch = require('isomorphic-fetch');
app.use(bodyParser.json());
app.use(methodOverride());
var promise = new Promise(function(resolve, reject) {
fetch('https://jsonplaceholder.typicode.com/posts/1').then(
function(response){
return response.json();
}
).then(function(jsonData){
result = []
for(var i in jsonData) {
result.push([i, jsonData [i]]);
}
var myKey = result[0][0];
var myValue = result[0][1];
var myJSON = {[myKey] : myValue}
console.log(myJSON);
});
});
答案 1 :(得分:1)
使用带方括号的键。
var myJSON = {[myKey] : myValue}
答案 2 :(得分:0)
有一种简单的方法可以使这个工作
var myJSON = {};
myJson.myKey = myValue;
myJson.myKey2 = myJsonValue2;
..