2015-11-24 108 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

给出了一个概念,您可以理解逻辑并以您需要的任何语言实现。 –