簡體   English   中英

嘗試從 JSON 中提取數據時出錯

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM