如何将字符串转换为对象作为键值对?

时间:2015-11-24 09:28:20

标签: javascript

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

我有一个字符串a并尝试将对象转换为键值对 我尝试了JSON.parse()和eval但没有工作..请建议我

5 个答案:

答案 0 :(得分:1)

您的JSON字符串错误。它应该如下所示。

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

您可以使用JSON解析方法将其转换为JSON格式

答案 1 :(得分:0)

首先,你可以在那里摆脱双引号吗?

  • 你需要在双引号内加单引号
  • 每组属性后都需要逗号
  • JSON.parse需要使用方括号{}

所以:

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

需要

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

答案 2 :(得分:0)

你的字符串不是json格式。

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

答案 3 :(得分: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();
}

答案 4 :(得分:-1)

你可以使用map来做,这是一个有效的例子。

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));
        }