Javascript 创建 Json

标签 javascript json stringify

我正在尝试创建并发布以下格式的 json 消息:

var listObjects = [];

$.each(results, function(index, value){

var item = new Object();
item.title = value.Title;
item.code = value.Code;

listObjects.push(item);

});

var jsonResult = JSON.stringify(listObjects);

基本上这会像这样创建我的 json:

[{"title":"Product 1","code":123456789012},
{"title":"Product 2","code":123456789012},
{"title":"Product 3","code":123456789012},
{"title":"Product 4","code":123456789012},
{"title":"Product 5","code":123456789012},
{"title":"Product 11","code":123456789012},
{"title":"Product 12","code":123456789012},
{"title":"Product 13","code":123456789012}]

我该怎么做,如果我想向我的 json 添加一些元数据,这些元数据不会对每个项目重复,但只是在顶部......像这样:

category: x
type:   y
...
   items:
         title: .....
         code: ......

所以基本上类别和类型将定义 json 中的整个项目,但不会为每个项目重复......

最佳答案

how can I do it so that if I want to add some metadata to my json that will not repeat for each item but just at the top

使用对象作为元数据和 items 数组的包装器:

var jsonResult = JSON.stringify({
    category: x,
    type:     y,
    items:    listObjects
});

我假设 xy 是变量;如果它们是文字,请将它们放在引号中。


旁注:在 JavaScript 中,没有理由使用 new Object。只需使用执行相同操作的 {}。您还可以在其中放置属性初始值设定项,而不是事后分配给属性。这是您的 $.each 以及这些更改(和缩进):

$.each(results, function(index, value){

    var item = {
        title: value.Title,
        code: value.Code
    };

    listObjects.push(item);

});

当然,您可以将它们结合起来:

$.each(results, function(index, value){

    listObjects.push({
        title: value.Title,
        code: value.Code
    });

});

最后但同样重要的是:您使用 $.each 所做的正是 $.map 所做的。用于:

var listObjects = $.map(results, function(index, value){
    return {
        title: value.Title,
        code: value.Code
    };
});

关于Javascript 创建 Json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18299628/

相关文章:

javascript - 动态更新 HTMLCollections 的优雅方式

java - 顶点 : My JsonArray consisting of Long values becomes suddenly a mix of Integer- and Long-Values?

ruby - 比 JSON 更快的简单序列化? (在 ruby 中)

java - java 中的 JSON.stringify - android

c - 如何实现为 _Pragma 创建带引号的字符串的宏?

jquery - JSON.stringify() 替代方案和 JSON2.js

javascript - 更改另一个属性时的 Angular 更新属性

javascript - 如何在页面重新加载jquery之前调用函数

javascript - 帮助从外部网站获取Json格式数据

javascript - Uncaught SyntaxError : Unexpected identifier