javascript - 在 typescript 中解析JSON数组

标签 javascript arrays json typescript parsing

我想在 typescript 中解析数组。

我的代码如下:

interface MyObj {
  val1: string
  val2: string
  val3: string
}

const fs = require('fs')
const file = 'test.json'
const encode = 'utf8'
const jsonString = '[{val1 : "test1", val2 : "test2", val3 : "test3"}, { val1 : "test4", val2 : "test5", val3 : "test3"}]'
fs.writeFile(file, JSON.stringify(jsonString))
fs.readFile(file, encode, (err, data) => {
  const objs = JSON.parse(data) as MyObj[]
  console.log(data)
  console.log(objs)

  for (const obj of objs) {
    console.log(obj)
    console.log(obj.val1)
    console.log(obj.val2)
    console.log(obj.val3)
  }

})

那么结果如下:

"[{val1 : \"test1\", val2 : \"test2\", val3 : \"test3\"}, { val1 : \"test4\", val2 : \"test5\", val3 : \"test6\"}]"
[{val1 : "test1", val2 : "test2", val3 : "test3"}, { val1 : "test4", val2 : "test5", val3 : "test6"}]
[
undefined
undefined
undefined
{
undefined
undefined
undefined
v
undefined
undefined
undefined
a
undefined
undefined
undefined
l
undefined
undefined
undefined
1
undefined
undefined
undefined
.
.
.

看起来parse是成功的,但可能解析后有一些错误的语法但找不到它们。

我的环境是:

  • 苹果操作系统 10.12.6

  • NPM 5.6.0

  • typescript 2.9.1

感谢任何帮助。

最佳答案

您的代码有几个问题。

首先,json 语法要求您引用属性 "val1": "test1" 而不是 val1: "test1"

其次,您应该使用 import fs = require('fs') 语法进行导入。

第三,也是最重要的一点,您将 json 作为字符串写入文件。 jsonString 已经是一个字符串,不需要再对它使用 stringify。如果你这样做,解析的结果将是一个字符串而不是一个对象数组。

interface MyObj {
    val1: string
    val2: string
    val3: string
}

import fs = require('fs')
const file = 'test.json'
const encode = 'utf8'
const jsonString = '[{"val1" : "test1", "val2" : "test2", "val3" : "test3"}, { "val1" : "test4", "val2" : "test5", "val3" : "test3"}]'
fs.writeFileSync(file, jsonString);
fs.readFile(file, encode, (err, data) => {
    const objs = JSON.parse(data) as MyObj[]
    console.log(data)
    console.log(objs)

    for (const obj of objs) {
        console.log(obj)
        console.log(obj.val1)
        console.log(obj.val2)
        console.log(obj.val3)
    }

})

关于javascript - 在 typescript 中解析JSON数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51703154/

相关文章:

javascript - 为什么这个 JSON 显示为未定义?

javascript - HTML 文本区域 : use JavaScript to get wrapped text?

c# - Gridview 的 Jquery 和更新面板不起作用

javascript - 我想确保输入是 Javascript 中的字符串

javascript - 新的 Array(9) 语法的目的是什么?

javascript - 如何解构对象的属性和属性的属性。 ES6 Javascript

c - 如何从文件中读取字符直到一个空格并将其存储为一个字符串(c)?

android - 反序列化 JSON 对象失败

javascript - Python:抓取 Javascript 行

javascript - Bootstrap - 当我在导航栏上添加带有滚动箭头的滑动菜单时出现问题