Javascript 将对象数组和嵌套数组转换为JSON
我有一个API端点,它需要以下json字符串(这是一个示例) api通过以下方式访问每种类型:Javascript 将对象数组和嵌套数组转换为JSON,javascript,php,json,api,Javascript,Php,Json,Api,我有一个API端点,它需要以下json字符串(这是一个示例) api通过以下方式访问每种类型: $userid = $data['userid']; $bookshelf = $data['bookshelf']; 等等。。。 我还可以循环浏览书籍,并使用以下内容获取每个bookid: $data['books'][$i]['bookid'] 当我通过postman之类的工具发送上面的json字符串时,效果很好。我在javascript端生成相同的json字符串时遇到问题。这就是我在网站前端
$userid = $data['userid'];
$bookshelf = $data['bookshelf'];
等等。。。
我还可以循环浏览书籍,并使用以下内容获取每个bookid:
$data['books'][$i]['bookid']
当我通过postman之类的工具发送上面的json字符串时,效果很好。我在javascript端生成相同的json字符串时遇到问题。这就是我在网站前端填充数据的方式
var data = new Array();
data.push({ "userid": "1234" });
data.push({ "bookshelf": "3" });
data.push({ "bookcount": "6" });
data.push({ "books": selectedbooks }); // This is an array of bookid objects
问题是,我是将其json.stringify并发送到Web服务器,然后再发送到api,还是让Web服务器对其进行json_编码,我最终得到的数字索引只能像$data[0]['userid']那样访问代码>一旦它被api解码,这与api的工作方式不同。如果api支持json字符串,则需要按照精确的顺序组装json字符串
如何获取所需格式的数据?数字索引的出现是因为您准备的数据是数组,而不是对象。JavaScript中的数组是索引的,而不是关联的。尝试:
var data = {
userid: 1234,
bookshelf: 3,
bookcount: 6,
books: selectedbooks
};
数字索引的出现是因为您将数据准备为数组,而不是对象。JavaScript中的数组是索引的,而不是关联的。尝试:
var data = {
userid: 1234,
bookshelf: 3,
bookcount: 6,
books: selectedbooks
};
您需要创建一个对象,而不是数组
var data = {};
data["userid"] = "1234";
data["bookshelf"] = "3";
data["bookcount"] = "6";
data["books"] = selectedbooks; // This is an array of bookid objects
您需要创建一个对象,而不是数组
var data = {};
data["userid"] = "1234";
data["bookshelf"] = "3";
data["bookcount"] = "6";
data["books"] = selectedbooks; // This is an array of bookid objects
数据不应该是数组,而是对象。唯一的数组位于books
属性中
var data = {}
data.userid = "1234";
data.bookshelf = "3";
data.bookcount = "6";
data.books = selectedbooks;
或者更简洁地说:
var data = {
userid: "1234",
bookshelf: "3",
bookcount: 6,
books: selectedbooks
};
数据不应该是数组,而是对象。唯一的数组位于books
属性中
var data = {}
data.userid = "1234";
data.bookshelf = "3";
data.bookcount = "6";
data.books = selectedbooks;
或者更简洁地说:
var data = {
userid: "1234",
bookshelf: "3",
bookcount: 6,
books: selectedbooks
};
您可以轻松地将数组转换为预期对象:
var arr = [
{"userid": "1234"},
{"bookshelf": "3"},
{"bookcount": "6"},
{
"books":[
{"bookid": "1"},
{"bookid": "2"},
{"bookid": "3"},
{"bookid": "6"}
]}
];
var obj = {} ;
arr.forEach(item => {
var key = Object.keys(item)[0];
obj[key] = item[key];
});
console.log(obj);
//{ userid: '1234',
// bookshelf: '3',
// bookcount: '6',
// books:
// [ { bookid: '1' },
// { bookid: '2' },
// { bookid: '3' },
// { bookid: '6' } ] }
您可以轻松地将数组转换为预期对象:
var arr = [
{"userid": "1234"},
{"bookshelf": "3"},
{"bookcount": "6"},
{
"books":[
{"bookid": "1"},
{"bookid": "2"},
{"bookid": "3"},
{"bookid": "6"}
]}
];
var obj = {} ;
arr.forEach(item => {
var key = Object.keys(item)[0];
obj[key] = item[key];
});
console.log(obj);
//{ userid: '1234',
// bookshelf: '3',
// bookcount: '6',
// books:
// [ { bookid: '1' },
// { bookid: '2' },
// { bookid: '3' },
// { bookid: '6' } ] }
创建一个对象并为其设置属性,然后将该对象推送到data
了解JavaScript中的数据结构:感谢所有人的帮助。这正是我想要的。创建一个对象并为其设置属性,然后将此对象推送到data
了解JavaScript中的数据结构:感谢所有人的帮助。正是我要找的。你的哥们到处都是。你打开了多少个标签?可怜你的拉姆哈吧。我能说什么呢。爱你的帮手。到处都是你的哥们。你打开了多少个标签?可怜你的拉姆哈吧。我能说什么呢。爱帮助。