【问题标题】:JavaScript Adding New property to Object shows in double quoteJavaScript 将新属性添加到对象显示在双引号中
【发布时间】:2021-03-24 11:36:21
【问题描述】:

我想向我的对象添加一个新属性。但是它在双引号中添加了属性,并且对象无法很好地初始化。 这是我在 JSFiddle 中的代码。

我的期望是

就是这样

提前感谢您的任何建议。

var chart;
function myFunction(incoming_data) {
var lcl = JSON.parse(JSON.stringify(incoming_data));
var headertxt = lcl.title_dynamic;
console.log(headertxt);
var chartCfg = {
            zoomEnabled: true,
            axisX: {
                title: "chart updates every 2 secs",
                crosshair: {
                    enabled: true,
                    snapToDataPoint: true
                }
            },
            axisY: {
                crosshair: {
                    enabled: true,
                    snapToDataPoint: true,
                    valueFormatString: "#,##0"
                }
            },
            toolTip: {
                shared: true
            },
            legend: {
                dockInsidePlotArea: true,
                verticalAlign: "top",
                horizontalAlign: "right"
            }
        };
chart = new CanvasJS.Chart("chart-container", chartCfg);
        chart.options.title = headertxt;
console.log(chart.options);
        chart.render();
}
var json_val = {"title_dynamic":"{text:\"Header Tay\"}"};
myFunction(json_val);
  <div id="chart-container" style="height: 300px; width: 100%;">
  </div>
<div style="margin-top:16px;color:dimgrey;font-size:9px;font-family: Verdana, Arial, Helvetica, sans-serif;text-decoration:none;"></div>
    <script type="text/javascript" src="https://canvasjs.com/assets/script/jquery-1.11.1.min.js"></script>
    <script type="text/javascript" src="https://canvasjs.com/assets/script/canvasjs.stock.min.js"></script>

编辑:我附上了代码 sn-p。

【问题讨论】:

  • 请点击编辑,然后[&lt;&gt;]sn-p编辑并提供minimal reproducible example
  • headertxt is 文本,正如变量名所暗示的那样。你需要:JSON.parse(headertxt)
  • @VLAZ 当我按照您的建议使用Uncaught SyntaxError: Unexpected token t in JSON at position 1时出现以下错误@
  • 啊,对,它不是 JSON,只是一个奇怪的JS对象的文本版本,出于某种原因。最简单的直接修复方法是eval,但我强烈建议,您更改生成该数据的任何内容以生成有效的 JSON。
  • @VLAZ 我使用 CanvasJS 对象。所以,这就是它的对象。我正在通过控制器传递headertext。我还将通过控制器传递data。根据选定的参数,它们必须是动态的。

标签: javascript properties canvasjs


【解决方案1】:

我需要做的就是这么简单。如果任何人有类似的问题,我会发布我的解决方案。

将字符串转换为对象

var my_obj = eval('({' + txt+ '})'); 

将数据转换为数组

var my_obj = eval(var_array);

参考问题:String to object in JS Convert form data to JavaScript object with jQuery

干杯!

【讨论】:

    猜你喜欢
    • 2011-02-16
    • 1970-01-01
    • 1970-01-01
    • 2022-07-21
    • 1970-01-01
    • 2014-01-04
    • 1970-01-01
    • 2015-09-21
    • 1970-01-01
    相关资源
    最近更新 更多