附加字符串时,for循环中出现Javascript[Object-Object]错误
Javascript [Object object] error in for loop while appending string
我是一个新手,试图将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_str[i]
是一个对象,当您将对象强制转换为字符串时就会发生这种情况(除非该对象以有用的方式实现toString
,而本例显然没有) 您还没有显示正在反序列化的JSON
现在您已经发布了JSON,我们可以看到它是一个包含两个对象的数组,每个对象都有一个Text
和Spend
属性。因此,在循环中,json_str[i].Text
将引用Text
属性。如果要使用categoryField
中的名称检索该属性,可以通过json_str[i][categoryField]
进行检索。
我不知道你想在serie
中得到什么,但如果你想它是一个两槽数组,第一个包含类别字段的值,第二个包含支出字段的值
var serie = [json_str[i][categoryField], json_str[i][valueField]];
(使用new Array
几乎没有任何理由,只需使用数组文字—[...]
—即可。)
相关文章:
- 为什么不't Javascript对我的输入值进行了一些重新检查
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 将函数的上下文应用于javascript变量
- 使用php或javascript从facebook相册URL中删除多余的部分
- 正在添加'X'按钮,在文本字段旁边使用javascript
- 如何在JavaScript中将字符串转换为函数引用
- 模糊事件的Javascript测试
- Javascript更改图标
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 如何使用WCF服务和javascript表单post上传.doc文件
- javascript结合了数组和字典
- 这是什么 ==- javascript 运算符
- 从javascript创建一个列表
- 无法在通过jQuery的ajax加载的页面中执行javascript
- Javascript:selenium Web驱动程序isDisplayed()不工作
- 如何通过ajax刷新JSF填充的javascript变量
- 如何在Javascript中将JSon对象转换为数组
- Javascript生成的表单未提交
- 使用javascript将动态表从一个html页面打印到另一个html页
- 通过javascript重定向html传递php变量