好的,这个问题可能很愚蠢,但我真的坚持这个。
我想要一个像以下一样的json结构:
order: {
currency: 'eur',
order_items: [
{
id: 3,
quantity: 1
},
{
id: 67,
quantity: 1
}
]
}
我现在正在做的是:
function makeOrder(){
var myArray = new Array();
for(var i=0;i<bookedItemsArray.length;i++){
var newObject = new OrderedItem(bookedItemsArray[i].id, bookedItemsArray[i].amount);
myArray.push(newObject);
}
var mystring = JSON.stringify(myArray);
//myString = "order: {currency: 'eur', order_items: " + myString + "}";
console.log(myString);
}
我在order_items数组中获取数据的方式很酷,但是当我尝试使用其余部分(注释中的行)连接数组时,我得到:
?:??: W/?(?): Uncaught SyntaxError: Unexpected token ILLEGAL at file:///android_asset/www/november/js/t03/Booking/bookingProcess.js:96
关于字符串和JSON结构的组合方式,我是否遗漏了什么?
非常感谢。
答案 0 :(得分:1)
你为什么不这样做?
var x = {
order: {
currency: 'eur',
order_items: []
}
};
for (var i = 0; i < 10; i++) {
var newObject = {
i: i,
Text: 'Some Text'
};
x.order.order_items.push(newObject);
}
var str = JSON.stringify(x);
看看这个小提琴:http://jsfiddle.net/9V6Vb/
这是生成的JSON:
{
"order": {
"currency": "eur",
"order_items": [{
"i": 0,
"Text": "Some Text"},
{
"i": 1,
"Text": "Some Text"},
{
"i": 2,
"Text": "Some Text"},
{
"i": 3,
"Text": "Some Text"},
{
"i": 4,
"Text": "Some Text"},
{
"i": 5,
"Text": "Some Text"},
{
"i": 6,
"Text": "Some Text"},
{
"i": 7,
"Text": "Some Text"},
{
"i": 8,
"Text": "Some Text"},
{
"i": 9,
"Text": "Some Text"}]
}
}
答案 1 :(得分:0)
JSON应该封装在{
和}
。
所以你的JSON应该是这样的:
{
"order": {
"currency": "eur",
"order_items": [
{
"id": 3,
"quantity": 1
},
{
"id": 67,
"quantity": 1
}
]
}
}
答案 2 :(得分:0)
正如Koen所说,你可以使用第一个属性创建一个对象,并在一次中对所有对象进行字符串化。
var myOrder = {
order: {
currency: 'eur',
order_items: [
{
id: 3,
quantity: 1
},
{
id: 67,
quantity: 1
}
]
}
}
console.log("currency : " + myOrder.order.currency);
for (var i in myOrder.order.order_items) {
console.log("items number " + i);
console.log("items id" + myOrder.order.order_items[i].id);
console.log("items quantity" + myOrder.order.order_items[i].quantity);
}
var myString = JSON.stringify(myOrder);
console.log(myString);
但我认为你应该直接“命令”你的对象
此致