簡體   English   中英

Angular 2:TypeScript / Javascript:將JSON字符串值轉換為正確的JSON對象

[英]Angular 2: TypeScript/Javascript: Converting JSON string value to proper JSON object

在我的Angular 2應用程序中,我收到了以下JSON對象,用於我在Java Spring的api層開發的api調用。 春天的控制器返回響應數據的Map。 (我已經嘗試返回Map,但沒有在GET調用中呈現任何內容)當在Angular端收到時,我的JSON對象中每個頂級鍵值對的值(用引號括起來的JSON數組)用引號括起來,無法為HTML中的此JSON數組字符串的名稱索引/篩選JSON對象。 例如,我無法使用“美國/種族”,只檢索相關的JSON數組的“值”,它實際上是一個字符串。 如何將這個JSON數組的String轉換為正確的JSON數組?

 {
    "US/ethnicities": "[{\"value\":\"Hispanic/Latino\",\"key\":\"HISPA\"},{\"value\":\"White (Not Hispanic or Latino)\",\"key\":\"WHITE\"},{\"value\":\"Black/African American (Not Hispanic or Latino)\",\"key\":\"BLACK\"},{\"value\":\"Native Hawaiian/Other Pac Island (Not Hispanic or Latino)\",\"key\":\"PACIF\"},{\"value\":\"Asian (Not Hispanic or Latino)\",\"key\":\"ASIAN\"},{\"value\":\"American Indian/Alaska Native (Not Hispanic or Latino)\",\"key\":\"AMIND\"},{\"value\":\"Two or More Races (Not Hispanic or Latino)\",\"key\":\"TWO\"},{\"value\":\"Decline to Specify\",\"key\":\"NSPEC\"}]",
    "countries/US/states": "[{\"value\":\"Alabama\",\"key\":\"AL\"},{\"value\":\"Alaska\",\"key\":\"AK\"},{\"value\":\"American Samoa\",\"key\":\"AS\"},{\"value\":\"Arizona\",\"key\":\"AZ\"},{\"value\":\"Arkansas\",\"key\":\"AR\"},{\"value\":\"California\",\"key\":\"CA\"},{\"value\":\"Colorado\",\"key\":\"CO\"},{\"value\":\"Connecticut\",\"key\":\"CT\"},{\"value\":\"Delaware\",\"key\":\"DE\"},{\"value\":\"District of Columbia\",\"key\":\"DC\"},{\"value\":\"Florida\",\"key\":\"FL\"},{\"value\":\"Georgia\",\"key\":\"GA\"},{\"value\":\"Guam\",\"key\":\"GU\"},{\"value\":\"Hawaii\",\"key\":\"HI\"},{\"value\":\"Idaho\",\"key\":\"ID\"},{\"value\":\"Illinois\",\"key\":\"IL\"},{\"value\":\"Indiana\",\"key\":\"IN\"},{\"value\":\"Iowa\",\"key\":\"IA\"},{\"value\":\"Kansas\",\"key\":\"KS\"},{\"value\":\"Kentucky\",\"key\":\"KY\"},{\"value\":\"Louisiana\",\"key\":\"LA\"},{\"value\":\"Maine\",\"key\":\"ME\"},{\"value\":\"Maryland\",\"key\":\"MD\"},{\"value\":\"Massachusetts\",\"key\":\"MA\"},{\"value\":\"Michigan\",\"key\":\"MI\"},{\"value\":\"Minnesota\",\"key\":\"MN\"},{\"value\":\"Mississippi\",\"key\":\"MS\"},{\"value\":\"Missouri\",\"key\":\"MO\"},{\"value\":\"Montana\",\"key\":\"MT\"},{\"value\":\"Nebraska\",\"key\":\"NE\"},{\"value\":\"Nevada\",\"key\":\"NV\"},{\"value\":\"New Hampshire\",\"key\":\"NH\"},{\"value\":\"New Jersey\",\"key\":\"NJ\"},{\"value\":\"New Mexico\",\"key\":\"NM\"},{\"value\":\"New York\",\"key\":\"NY\"},{\"value\":\"North Carolina\",\"key\":\"NC\"},{\"value\":\"North Dakota\",\"key\":\"ND\"},{\"value\":\"Ohio\",\"key\":\"OH\"},{\"value\":\"Oklahoma\",\"key\":\"OK\"},{\"value\":\"Oregon\",\"key\":\"OR\"},{\"value\":\"Pennsylvania\",\"key\":\"PA\"},{\"value\":\"Puerto Rico\",\"key\":\"PR\"},{\"value\":\"Rhode Island\",\"key\":\"RI\"},{\"value\":\"South Carolina\",\"key\":\"SC\"},{\"value\":\"South Dakota\",\"key\":\"SD\"},{\"value\":\"Tennessee\",\"key\":\"TN\"},{\"value\":\"Texas\",\"key\":\"TX\"},{\"value\":\"Utah\",\"key\":\"UT\"},{\"value\":\"Vermont\",\"key\":\"VT\"},{\"value\":\"Virgin Islands\",\"key\":\"VI\"},{\"value\":\"Virginia\",\"key\":\"VA\"},{\"value\":\"Washington\",\"key\":\"WA\"},{\"value\":\"West Virginia\",\"key\":\"WV\"},{\"value\":\"Wisconsin\",\"key\":\"WI\"},{\"value\":\"Wyoming\",\"key\":\"WY\"}]",
    "genders": "[{\"value\":\"Female\",\"key\":\"F\"},{\"value\":\"Male\",\"key\":\"M\"}]",
    "compensation-types": "[{\"value\":\"Annual\",\"key\":\"A\"},{\"value\":\"Hourly\",\"key\":\"H\"}]",
    "countries": "[{\"value\":\"Canada\",\"key\":\"CA\"},{\"value\":\"United States of America\",\"key\":\"US\"}]",
    "flsa-codes": "[{\"value\":\"Computer Prof-Exempt\",\"key\":\"C\"},{\"value\":\"Computer Prof-Non Exempt\",\"key\":\"Z\"},{\"value\":\"Exempt\",\"key\":\"T\"},{\"value\":\"Non-Exempt\",\"key\":\"N\"}]",
    "employment-types": "[{\"value\":\"Full Time\",\"key\":\"F\"},{\"value\":\"Part Time\",\"key\":\"P\"}]",
    "US/military-statuses": "[{\"value\":\"Not indicated\",\"key\":\"1\"},{\"value\":\"No Military Service\",\"key\":\"2\"},{\"value\":\"Veteran of the Vietnam Era\",\"key\":\"3\"},{\"value\":\"Other Protected Veteran\",\"key\":\"4\"},{\"value\":\"Active Reserve\",\"key\":\"5\"},{\"value\":\"Inactive Reserve\",\"key\":\"6\"},{\"value\":\"Retired Military\",\"key\":\"7\"},{\"value\":\"Veteran (VA Ineligible)\",\"key\":\"8\"},{\"value\":\"Vietnam & Other Protected Vet\",\"key\":\"9\"},{\"value\":\"Pre-Vietnam-Era Veteran\",\"key\":\"B\"},{\"value\":\"Not a Vietnam-Era Veteran\",\"key\":\"N\"},{\"value\":\"Post-Vietnam-Era Veteran\",\"key\":\"P\"},{\"value\":\"Vietnam-Era Veteran\",\"key\":\"V\"},{\"value\":\"Not a Veteran\",\"key\":\"X\"}]"
  }

您可以使用JSON.parse將包含有效JSON的字符串轉換為JSON。 例如:

JSON.parse(string)

所以,如果你把整個事情搞砸到一個變量a ,你可以像這樣訪問它:

JSON.parse(a['US/ethnicities'])[0]

 { value: 'Hispanic/Latino', key: 'HISPA' }

JSON.parse(a['US/ethnicities'])[1]

{ value: 'White (Not Hispanic or Latino)', key: 'WHITE' } 

暫無
暫無

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

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