尝试从 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 中提取数据时出错的主要内容,如果未能解决你的问题,请参考以下文章
在 Visual Studio 中反序列化 JSON 文件时出错
尝试从 Swift 2.0 中的 json 解析数据时出错?