附加字符串时for循环中的Javascript[Object]错误

附加字符串时for循环中的Javascript[Object]错误,javascript,object,Javascript,Object,我是一个新手,尝试将onSuccess函数的结果反序列化为: "onResultHttpService": function (result, properties) { var json_str = Sys.Serialization.JavaScriptSerializer.deserialize(result); var data = []; var categoryField = properties.PodAttributes.categoryField; var v

我是一个新手,尝试将onSuccess函数的结果反序列化为:

 "onResultHttpService": function (result, properties) {
  var json_str = Sys.Serialization.JavaScriptSerializer.deserialize(result);
  var data = [];
  var categoryField = properties.PodAttributes.categoryField;
  var valueField = properties.PodAttributes.valueField;
  for (var i in json_str) {                   
       var serie = new Array(json_str[i] + '.' + categoryField, json_str[i] +     '.' + valueField);
                data.push(serie);
       }
result
中的JSON如下所示:

[
    {
        "Text": "INDIRECT GOODS AND SERVICES",
        "Spend": 577946097.51
    },
    {
        "Text": "LOGISTICS",
        "Spend": 242563225.05
    }
]
正如您所看到的,我正在for循环中追加字符串..我这样做的原因是因为属性名称不断更改,因此我不能将其作为

 var serie = new Array(json_str[i].propName, json_str[i].propValue);
我需要传递数据(数组类型)以绑定highchart柱形图。但当我检查var系列时,它显示为

serie[0] = [object Object].Text
serie[1] = [object Object].Spend

为什么不在数组中填充实际内容?

之所以这样做,是因为
json\u str[i]
是一个对象,当您将一个对象强制为字符串时就会发生这种情况(除非该对象以一种有用的方式实现
toString
,而这显然不是)。您尚未显示正在反序列化的JSON

现在您已经发布了JSON,我们可以看到它是一个包含两个对象的数组,每个对象都有一个
Text
Spend
属性。因此,在循环中,
json_str[i].Text
将引用
Text
属性。如果要使用
categoryField
中的名称检索该属性,可以通过
json\u str[i][categoryField]
进行检索

我不知道您希望在
系列中得到什么,但是如果您希望它是一个双槽数组,其中第一个包含类别字段的值,第二个包含支出字段的值,那么

var serie = [json_str[i][categoryField], json_str[i][valueField]];

(几乎没有理由使用
新数组
,只需使用数组文字-
[…]

由于您的问题实际上取决于您循环的数据,最好向我们展示该数据(例如,
结果
看起来像什么?。@T.J.Crowder,这里是result=[{“Text”:“间接商品和服务”,“支出”:577946097.51},{“文本”:“物流”,“支出”:242563225.05}]//在去个性化后,它变成..var json_str=Sys.Serialization.JavaScriptSerializer.deserialize(result);即json_str=json_str[0]…json_str[1]要改进您的问题,请使用“编辑”“链接在下面。我继续为你编辑了它。克劳德..收到了,伙计..谢谢你。”much@AdnanBaliwala:很高兴这有帮助。如果这回答了您的问题,请将其标记为已接受的答案: