繁体   English   中英

JSON 解析错误:尝试解析数组中的对象时出现意外的标识符“未定义”(React-Native)

[英]JSON Parse error: Unexpected identifier "undefined" when trying to parse an object from an array (React-Native)

我已经创建了一种在 AsyncStorage 中以我想要的方式存储数据的方法。 这包括:

  1. 读取各种输入(各种数组)
  2. 将输入存储在包含多个数组的本地this.state.object
  3. 字符串化this.state.object
  4. 将字符串化对象存储在临时数组中
  5. 将包含所有对象的数组分配给另一个状态this.state.allObjects
  6. 字符串化“this.state.allObjects”
  7. 在 AsyncStorage 中存储字符串化数组

所有这些的最终目标是拥有一个对象数组,每个对象代表相同类型的一个非常不同的实例(具有不同的参数等)。 这可能不是最优雅的方法,但它似乎可以很好地存储和加载。

当我尝试从this.state.allObjects[x]解析任何内容时,问题就出现了。 或者更确切地说,它仅在我需要在加载后不正确的情况下访问它时发生。

在我的loadFromAsync函数中,我完全能够执行this.state.allObjects = JSON.parse(fromAsync); 获取字符串化对象的数组,然后var display = JSON.parse(this.state.allObjects[0]).name以检索数组的第一个解析对象的名称。

当我尝试调用var display = JSON.parse(this.state.allObjects[0]).name或什至更简单的<Text>{JSON.parse(this.state.allObjects[0]).name}</Text>时,此函数之外的任何时间<Text>{JSON.parse(this.state.allObjects[0]).name}</Text>我收到以下错误:

  • 跑步时
const parse  = JSON.parse(this.state.allObjects[0]); 
//JSON Parse error: Unexpected identifier "undefined"
console.log(parse.name);
  • 和跑步时
const parse  = JSON.parse(this.state.allObjects[0]).name; 
//JSON Parse error: Unexpected identifier "undefined" + null is not an object (evaluating 'JSON.parse(this.state.allObjects[0]).name
console.log(parse);
  • 最后在跑步时
const parse  = JSON.parse(this.state.allObjects); 
//JSON Parse error: Unexpected EOF + JSON Parse error: Unexpected token ','

我假设this.state.allObjects在我的代码中的某处发生了变化,或者在某处附加了一个额外的} ,尽管它确实不应该。 当我显示this.state.objectthis.state.allObjects[0] ,它们的格式在视觉上完全相同。 this.state.allObjects添加更多对象并显示每个字符串化组件也可以; 这只是实际解析这些在原始加载功能之外不起作用的组件的问题。

我非常困。 任何建议表示赞赏。 如果我需要更改我的数据类型,那很好。 使用包含数组的字符串化对象的字符串化数组走到这一步却无法解析它,这有点烦人。

因为this.state.allObjects已经是 JSON 对象了。

试试JSON.stringify()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM