代码之家  ›  专栏  ›  技术社区  ›  deschen

使用fromJSON创建JSON时有关意外符号的错误消息

  •  0
  • deschen  · 技术社区  · 3 年前

    这可能是件容易的事情,但我一直在努力用简单的文本输入创建一个简单的JSON文件。从错误信息来看,很明显我用引号写错了什么,但我不知道是什么。

    library(jsonlite)
    
    # Create an example
    jsoncars <- toJSON(mtcars[1:2,], pretty=TRUE)
    jsoncars
    

    这使得:

    [
      {
        "mpg": 21,
        "cyl": 6,
        "disp": 160,
        "hp": 110,
        "drat": 3.9,
        "wt": 2.62,
        "qsec": 16.46,
        "vs": 0,
        "am": 1,
        "gear": 4,
        "carb": 4,
        "_row": "Mazda RX4"
      },
      {
        "mpg": 21,
        "cyl": 6,
        "disp": 160,
        "hp": 110,
        "drat": 3.9,
        "wt": 2.875,
        "qsec": 17.02,
        "vs": 0,
        "am": 1,
        "gear": 4,
        "carb": 4,
        "_row": "Mazda RX4 Wag"
      }
    ]
    

    现在,我将同样的文本复制到fromJSON中:

    fromJSON("[
      {
        "mpg": 21,
        "cyl": 6,
        "disp": 160,
        "hp": 110,
        "drat": 3.9,
        "wt": 2.62,
        "qsec": 16.46,
        "vs": 0,
        "am": 1,
        "gear": 4,
        "carb": 4,
        "_row": "Mazda RX4"
      },
      {
        "mpg": 21,
        "cyl": 6,
        "disp": 160,
        "hp": 110,
        "drat": 3.9,
        "wt": 2.875,
        "qsec": 17.02,
        "vs": 0,
        "am": 1,
        "gear": 4,
        "carb": 4,
        "_row": "Mazda RX4 Wag"
      }
    ]")
    

    我得到了以下错误:

    Error: unexpected symbol in:
    "      {
            "mpg"
    Execution halted
    

    顺便说一句,你在做什么 fromJSON(jsoncars) 行得通,但还是解决不了我的问题。

    有什么想法吗?

    1 回复  |  直到 3 年前
        1
  •  2
  •   Waldi    3 年前

    使用 ' 区别于 " 在里面 JSON 文本:

    jsonlite::fromJSON('[
      {
        "mpg": 21,
        "cyl": 6,
        "disp": 160,
        "hp": 110,
        "drat": 3.9,
        "wt": 2.62,
        "qsec": 16.46,
        "vs": 0,
        "am": 1,
        "gear": 4,
        "carb": 4,
        "_row": "Mazda RX4"
      },
      {
        "mpg": 21,
        "cyl": 6,
        "disp": 160,
        "hp": 110,
        "drat": 3.9,
        "wt": 2.875,
        "qsec": 17.02,
        "vs": 0,
        "am": 1,
        "gear": 4,
        "carb": 4,
        "_row": "Mazda RX4 Wag"
      }
    ]')
    
                  mpg cyl disp  hp drat    wt  qsec vs am gear carb
    Mazda RX4      21   6  160 110  3.9 2.620 16.46  0  1    4    4
    Mazda RX4 Wag  21   6  160 110  3.9 2.875 17.02  0  1    4    4
    
    

    另一个选择是新的R>=4 raw character string 语法 r"(...)" :

    jsonlite::fromJSON(r"([
      {
        "mpg": 21,
        "cyl": 6,
        "disp": 160,
        "hp": 110,
        "drat": 3.9,
        "wt": 2.62,
        "qsec": 16.46,
        "vs": 0,
        "am": 1,
        "gear": 4,
        "carb": 4,
        "_row": "Mazda RX4"
      },
      {
        "mpg": 21,
        "cyl": 6,
        "disp": 160,
        "hp": 110,
        "drat": 3.9,
        "wt": 2.875,
        "qsec": 17.02,
        "vs": 0,
        "am": 1,
        "gear": 4,
        "carb": 4,
        "_row": "Mazda RX4 Wag"
      }
    ])")
    
    推荐文章