簡體   English   中英

無法使用JSON.parse()將字符串轉換為json

[英]unable to convert string to json using JSON.parse()

json字串:

str = "{'Link': 'https://careers.powergrid.in/CCBaclogVacancy2018/c/default.aspx',
'Title': 'Apply Online'},{'Link': 'https://careers.powergrid.in/CCBaclogVacancy2018/c/login.aspx',
'Title': 'Login'},{'Link': 'media/pdf/details/all-india-govt-jobs/other-all-india-govt-jobs/8588011698.pdf',
'Title': 'Notification '},{'Link': 'http://www.powergridindia.com/', 'Title': 'Official Website'}"

期待:

json = {'Link': 'https://careers.powergrid.in/CCBaclogVacancy2018/c/default.aspx',
'Title': 'Apply Online'},{'Link': 'https://careers.powergrid.in/CCBaclogVacancy2018/c/login.aspx',
'Title': 'Login'},{'Link': 'media/pdf/details/all-india-govt-jobs/other-all-india-govt-jobs/8588011698.pdf',
'Title': 'Notification '},{'Link': 'http://www.powergridindia.com/', 'Title': 'Official Website'}

我正在嘗試使用JSON.parse(str); 它給我錯誤:

VM267:1 Uncaught SyntaxError: Unexpected token ' in JSON at position 1
at JSON.parse (<anonymous>)
at <anonymous>:1:6

如何將字符串轉換為純json。

請看看這個。

JSON.parse需要一個格式正確的字符串。 JSON數據被寫為名稱/值對。 名稱/值對由一個字段名(雙引號),一個冒號,一個值(如果是字符串值,則雙引號)組成。

此外,您似乎正在嘗試描述對象的集合,因此您應該將它們全部包裝在數組中...(請注意,我使用的是“ ES2015字符串,允許多行字符串)

const str = `[{
    "Link": "https://careers.powergrid.in/CCBaclogVacancy2018/c/default.aspx",
    "Title": "Apply Online"
},
{
    "Link": "https://careers.powergrid.in/CCBaclogVacancy2018/c/login.aspx",
    "Title": "Login"
},
{
    "Link": "media/pdf/details/all-india-govt-jobs/other-all-india-govt-jobs/8588011698.pdf",
    "Title": "Notification "
},
{
    "Link": "http://www.powergridindia.com/",
    "Title": "Official Website"
}]`;
console.log(JSON.parse(str)[0].Title); // Apply Online
str = "what 'ever'";
str = str.replace(/'/gi,'"')

這是用regexp和replace()替換所有內容的方法

您的json無效。

  • 單引號應該是雙引號
  • 對象應該用[]表示數組

因此,要使其成為有效的json,請用方括號括住對象並替換所有單引號,然后再對其進行解析。

 str = `[{'Link': 'https://careers.powergrid.in/CCBaclogVacancy2018/c/default.aspx', 'Title': 'Apply Online'},{'Link': 'https://careers.powergrid.in/CCBaclogVacancy2018/c/login.aspx', 'Title': 'Login'},{'Link': 'media/pdf/details/all-india-govt-jobs/other-all-india-govt-jobs/8588011698.pdf', 'Title': 'Notification '},{'Link': 'http://www.powergridindia.com/', 'Title': 'Official Website'}]` json = JSON.parse(str.replace(/'/g, '"')) console.log(json) 

無論您在這里進行什么數組操作,您都缺少最外層的包裝器。 另外雙引號是json中的標准

嘗試包裝您的字段。

`{
   "items": [
      {
       "Link": "https://careers.powergrid.in/CCBaclogVacancy2018/c/default.aspx",
       "Title": "Apply Online"
      }, {
        "Link": "https://careers.powergrid.in/CCBaclogVacancy2018/c/login.aspx",
        "Title": "Login"
      }, {
        "Link": "media/pdf/details/all-india-govt-jobs/other-all-india-govt-jobs/8588011698.pdf",
        "Title": "Notification"
      }, {
        "Link": "http://www.powergridindia.com",
        "Title": "Official Website"
      }
    ]
}`

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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