[英]Getting error trying to extract data from JSON
我將此 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"
我將不勝感激指針,一般缺失的概念等。
心存感激,
於連
嗯,有兩件事不對。
從SyntaxError: Unexpected token o in JSON at position 1
:你得到這個是因為你沒有在string
上使用JSON.parse
,而是在object
上使用JSON.parse
; 在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());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.