javascript - 将字符串作为对象添加到已存在的对象

标签 javascript jquery json charts

我正在构建动态 xChart .我传递的动态数据是一个预建的字符串,准备通过 js 转换为对象:

{"data": [{"x":"car insurance companies","y":1417},
          {"x":"insurance companies","y":17201},
          {"x":"auto insurance companies","y":892},
          {"x":"car insurance quote","y":3280},
          {"x":"auto insurance quote","y":988}]}

这是 xCharts 需要的参数代码示例片段:

var data = {
  "xScale": "ordinal",
  "yScale": "linear",
  "main": [
    {
      "className": ".pizza",
      "data": [
        {
          "x": "Pepperoni",
          "y": 4
        },
        {
          "x": "Cheese",
          "y": 8
        }
      ]
    }
  ]
};

这是我的参数集:

var vars = {
    "xScale": "ordinal",
    "yScale": "linear",
    "type": "bar",
    "main": [
    {
        "className": ".topsy-results"
    }
    ]
};

我需要将我的 data 对象添加到我的参数列表中的 main 对象以使其完整。如果我 $.parseJSON data 对象,它会给我一个无法工作的对象对象。如何解析 data 对象以获得我需要的格式(使其与我提供的示例代码匹配)?

最佳答案

使用 $.extend 并合并两者?

var prebuilt = {...}; //that pre-build data
var vars = {...}; // Your vanilla settings

var merged = $.extend({}, vars, {
  'main': prebuilt
});

我已将 prebuilt 放入另一个对象中,因此嵌套在扩展时会起作用,但现在 prebuilt 应该显示在 datamerged 对象。 注意: $.extend 很有用,如果您不仅有数据信息,或者如果 data 属性中已经存在部分并且您想要更新它们或添加新的)。

您也可以通过引用简单地分配它:

vars.main.data = prebuilt.data;

关于javascript - 将字符串作为对象添加到已存在的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14940777/

相关文章:

javascript - 是否可以从新加载的页面将元素插入到先前打开的窗口文档中?

javascript - Three.js - 变换控件

javascript - 当使用 ajax 覆盖内容时,jquery click 事件不起作用

javascript - 如何在不显示浏览器垂直滚动条的情况下自动缩小 100% 的 div?

json - Azure 逻辑应用 HTTP 请求触发器中 JSON 负载的格式

javascript - 在 'use strict' 之外声明没有 var 的变量

javascript - 使用具有 !important 标签的 jquery 更改 div 的背景颜色

javascript - 检测到跨度时未选择下一个输入元素

javascript - HTML 中的有向图表示

javascript - HighCharts OHLC - 我可以使用 JSON 数据提供每个点的颜色信息吗?