gpt4 book ai didi

Javascript JSON解析对象,一个对象属性未定义,不抛出任何错误

转载 作者:行者123 更新时间:2023-12-03 08:29:11 24 4
gpt4 key购买 nike

我有一个非常独特的问题;在通过 xmlhttprequest 从 PHP 传递过来之后,我将 JSON 字符串解析回对象数组。我的网络应用程序使用几个不同的 sqlsrv_query 的结果重复执行此操作,但一个查询特别有问题:id 值不一致。我的意思是,如果我在解析之前输出 JSON 字符串,则 id 值是一个 int,但在 JSON 解析之后它是未定义的。其余的值都很好,只是 id(这是唯一的 int)。此外,解析后,如果我将对象转换回 JSON 字符串,则 int 值将恢复。如果我尝试像“object.prop”那样调用该属性,它将返回未定义。我已经检查、双重检查、三次检查,确保没有拼写错误。我用 console.logged 整个对象数组(在执行过程中的各个点),结果相同。我在SO、谷歌或here上找不到任何东西。这可以解释这种行为,可以吗?

这里是一些代码片段。

xmlhttprequest回调函数内部:

var result1 = decodeURIComponent(xmlhttp.responseText);

console.log(result1); <-- * SEE OUTPUT BELOW *

if(result1.search('<br') === -1) {
this.result = JSON.parse(result1);

} else {
console.log(result1);
}

output: [{"sheet_id":4054,"o_number":1,"o_description"...

解析后,该对象被传递给另一个对象:

if(!result) {
//var error = new ErrorLog();
} else {
console.log(result); <-- * SEE OUTPUT BELOW *

output: [Object, Object, Object, Object, Object]
0: Object
prop1: someValue
prop2: someOtherValue
...
sheet_id: undefined

为了阻止巨魔的攻击,让我重申一下我测试此场景的程度:

Chrome 和 IE11 中产生相同的结果。我尝试对多个不同的记录执行相同的查询,但发生了同样的事情。返回整数和字符串混合的大量其他查询(不同的查询)不存在此问题。我尝试关闭浏览器并重新打开,以防出现某种奇怪的临时异常情况。

我以前从未在这里发过帖子,因为我几乎总能通过一些研究找到问题的答案,但这超出了我的解决能力,因此我向 SO 的好人寻求帮助、任何解决方案、见解或如果知道在哪里寻找答案,我们将不胜感激。

最佳答案

它采用有效的 json 格式。尝试使用 JSON.parse()

解析它
if(result1.search('<br') === -1) {
this.result = JSON.parse(result1);

} else {
console.log(JSON.parse(result1));
}

关于Javascript JSON解析对象,一个对象属性未定义,不抛出任何错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33413030/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com