json 我无法从我的服务器响应中获取数组值[关闭]

wgmfuz8q  于 2023-05-08  发布在  其他
关注(0)|答案(1)|浏览(99)

**关闭。**这个问题是not reproducible or was caused by typos。目前不接受答复。

此问题是由打印错误或无法再重现的问题引起的。虽然类似的问题可能是on-topic在这里,这一个是解决的方式不太可能帮助未来的读者。
昨天关门了。
Improve this question
我让我的服务器给我回复了一本字典。console.log(responce)返回以下内容:

{"filters":{
  "Facture": [
    "Магма (Тычок)",
    "Тонкий кирпич",
    "Гладкий",
    "Крафт",
    "Магма"
  ],
  "Color": [
    "Беж",
    "Черный",
    "Амстердам",
    "Лондон Брик",
    "Мюнхен",
    "Сити Брик"
  ],
  "Name": [
    "Облицованный кирпич стандартный пустотелый",
    "Тонкий колотый с ф. 180/11"
  ]
}}

但当我尝试用这段代码访问值时:

console.log(xhr.responseText);

const response = xhr.responseText;
console.log(response);

const myObj = JSON.parse(response);
console.log(myObj);

var names = myObj.Name.map(name => name.trim());
var types = myObj.Facture.map(type => type.trim());
var colors = myObj.Color.map(color => color.trim());

console.log(names);
console.log(types);
console.log(colors);

它在控制台中返回undefined。请帮我取一下值……我得到的唯一线索是,如果我在脚本中创建这个对象,它可以正常工作,但是当我通过响应获取对象时,它就不工作了
我试了所有的方法:更改服务器发送的数据使用不同的代码访问值...

epfja78i

epfja78i1#

更改此行:

const myObj = JSON.parse(response);

const myObj = JSON.parse(response).filters;

因为您要查找的值似乎在属性 filters 中。

已编辑

看,注解-原来服务器返回的是“{...}”而不是{...},所以我们不得不双重解析它:

const myObj = JSON.parse(JSON.parse(response)).filters;

如果你能控制服务器/后端,一个更好的解决方案是在那里解决这个问题。

相关问题