2015-11-24 121 views
1
Var a= {"fmrd":"pmc","bdr": "kmn"}; 

我有一個字符串,並試圖在對象轉換爲鍵值對 我試過JSON.parse()來,和eval但沒有工作..請諮詢我如何將字符串轉換爲對象作爲鍵值對?

+1

很多的在那裏:P檢查您的控制檯 –

+1

有效的JSON看起來像'{ 「fmrd」: 「PMC」, 「BDR」: 「KMN」}'。你可以檢查你的JSON [這裏](https://jsonformatter.curiousconcept.com/)。 –

+0

'Var'應該是'var'。如果你的字符串的格式高於它已經是一個對象的格式。試試'alert(a.fmrd)'它會告訴你'pmc' – Karan

回答

0

首先,你可以得到那裏擺脫雙引號?

  • 你需要有雙引號內的單引號
  • 你需要一個逗號分隔每個組屬性後
  • 你需要括號{}爲JSON.parse工作

所以:

a= ""fmrd":"pmc""bdr": "kmn""; 

需要是

a= "{'fmrd':'pmc','bdr': 'kmn'}"; 
1

您的JSON字符串錯誤。它應該如下所示。

var a= "{\"fmrd\":\"pmc\",\"bdr\": \"kmn\" }"; 
var jsonData = JSON.parse(a); 

您可以使用JSON解析方法將其轉換爲JSON格式

0

您的字符串不是JSON格式。錯誤的

var a= '{"fmrd":"pmc","bdr": "kmn"}'; 
JSON.parse(a); 
0
var a= [ "fmrd":"pmc","bdr": "kmn"]; 

var obj = {}; 

for (var i = 0; i < x.length; i++) { 

    var split = x[i].split(':'); 

    obj[split[0].trim()] = split[1].trim(); 
} 
-1
You can do it using map, Here is working example  
`String test = "an:example::using:map::where:key::value:store"; 
     Map<String, String> m = new HashMap<String, String>(); 
     // split on ':' and on '::' 
     String[] parts = test.split("::?"); 

     for (int i = 0; i < parts.length; i += 2) { 
      m.put(parts[i], parts[i + 1]); 
     } 

     for (String s : m.keySet()) { 
      System.out.println(s + " is " + map.get(s)); 
     }` 
+0

錯誤的編程語言... – Lucero

+0

給出了一個概念,您可以理解邏輯並以您需要的任何語言實現。 –