尝试从 JSON 中提取数据时出错

Posted

技术标签:

【中文标题】尝试从 JSON 中提取数据时出错【英文标题】:Getting error trying to extract data from JSON 【发布时间】:2020-05-08 22:06:42 【问题描述】:

我这个 JSON 为 input_data:

"product":["1\/4 Page Ad (Amount: 25.00 USD, Quantity: 1)"],"currency":"USD","total":"25.00","transactionID":"34444622CG671084E","transactionFee":"1.03","transactionFeeCurrency":null,"payerName":"Laurence J Lafleur","payerEmail":"lafleur.julien@gmail.com","fullname":"Laurence J Lafleur","email":"lafleur.julien@gmail.com","transactionid":"34444622CG671084E","shiptoname":"Laurence J Lafleur","addr":"8 East Street ","city":"NATICK","state":"MA","postal":"01760","country":"US"

我正在尝试从product 字段中提取信息:1/4 Page Ad (Amount: 25.00 USD, Quantity: 1)

我的代码如下所示:

var myvar = JSON.parse(input_data)
var myret = myvar.product
return myret

我收到以下错误:"SyntaxError: Unexpected token o in JSON at position 1"

我将不胜感激指针、一般缺失的概念等。

感激不尽,

朱利安

【问题讨论】:

看起来它已经是一个对象了。你试过var myret = input_data.product; return myret 吗? 我认为你不需要调用JSON.parse(),因为数据已经是一个对象了。 【参考方案1】:

嗯,有两件事不对。

SyntaxError: Unexpected token o in JSON at position 1 开头: 你得到这个是因为你没有在string上使用JSON.parse,你在object上使用JSON.parse;在幕后,JSON.parse 将尝试从你给它的输入中创建一个字符串,如果输入不是字符串,所以.toString() === '[object Object]',你基本上是在运行JSON.parse('[object Object]'),这不是有效的 JSON(看看第二个字符或位置 1 的字符,它是一个 'o' 而不是字符串、布尔值、对象、数组或数字)

第二个问题是myvar.product 是一个数组,您希望得到数组内部的内容,而不是数组本身。你需要回myvar.product[0]

试试这个:

function test()
    var data = '"product":["1\/4 Page Ad (Amount: 25.00 USD, Quantity: 1)"],"currency":"USD","total":"25.00","transactionID":"34444622CG671084E","transactionFee":"1.03","transactionFeeCurrency":null,"payerName":"Laurence J Lafleur","payerEmail":"lafleur.julien@gmail.com","fullname":"Laurence J Lafleur","email":"lafleur.julien@gmail.com","transactionid":"34444622CG671084E","shiptoname":"Laurence J Lafleur","addr":"8 East Street ","city":"NATICK","state":"MA","postal":"01760","country":"US"'

    var myvar = JSON.parse(data);
    var myret = myvar.product[0];
    return myret;

console.log(test());

【讨论】:

以上是关于尝试从 JSON 中提取数据时出错的主要内容,如果未能解决你的问题,请参考以下文章

尝试从 h2 数据库中检索 json 数据时出错

在 Visual Studio 中反序列化 JSON 文件时出错

尝试从 Swift 2.0 中的 json 解析数据时出错?

尝试使用 python 中的地理库从文本中提取城市名称时出错

使用地理(Python)从文本中提取城市时出错

从 GCS 加载 JSON 时出错