首頁  >  問答  >  主體

javascript - 講一個不標準的Js字串轉換為標準的json對象

我有下面一個js字串

var aaa='{a:1,b:2,c:3}';

怎麼快速的把aaa轉換成 {'a':1,'b':2,'c':3}這樣的標準的Json物件呢?

高洛峰高洛峰2734 天前428

全部回覆(3)我來回復

  • 黄舟

    黄舟2017-05-18 11:00:23

    你對標準 JSON 物件理解有誤,標準 JSON 的屬性是加雙引號的,不加引號,加單引號都不行。

    JSON.parse(str) 這裡接收的 str 參數要求是符合 JSON 形式的字串,不符合 JSON 形式會錯誤。

    所以先要將物件的屬性加上雙引號。

    如果你不想使用 eval,可以採用這種方法,

    var aaa="{a:1, b:2, c:3}";
    function toJSONStr(str) {
      return str.replace(/([$\w]+)\s*:/g, function(_, ){return '"'++'":'});
    }
    function toJSON(str) {
      return JSON.parse(str);
    }
    toJSON(toJSONStr(aaa));

    SyntaxError: JSON.parse: bad parsing

    回覆
    0
  • PHP中文网

    PHP中文网2017-05-18 11:00:23

    JSON.parse(aaa);

    JSON.stringify: json =》string
    JSON.parse:string =》json
    可參考:https://m.baidu.com/from=1086...

    回覆
    0
  • 天蓬老师

    天蓬老师2017-05-18 11:00:23

    雷雷

    回覆
    0
  • 取消回覆