【问题标题】:Convert non typical json string to JSON将非典型 json 字符串转换为 JSON
【发布时间】:2021-11-04 09:07:45
【问题描述】:

我从一个随机的 API url 中获取,我得到了这样的响应: "key='jio3298', age=24, key='oijf032', age=62"如何使用 JavaScript 以有效的方式将此非 json 字符串转换为 JSON 对象列表(即[{'key': 'jio3298', age: 24}, {'key':'oijf032', 'age':62}])?我确实在一次采访中遇到了这个代码问题(问题的一部分。我需要该列表根据条件循环和过滤),看来我的回答至少很慢。

【问题讨论】:

  • 你真的需要它作为 JSON,还是你可以使用的 JavaScript 对象?那些不是一回事!此外,您提到您有一些现有的代码 - 人们可能会更乐意帮助您改进(可能在 codereview.stackexchange.com 上?)而不是为您完成工作

标签: performance javascript-objects


【解决方案1】:

你应该使用

String.prototype.split()

创建一个数组,然后在这个数组上循环并创建键和值的梨。

这里是一个例子:

const parser = (input) => {
  input = input.split(",");
  let keyAgeList = [],
    output = [];
  for (let i of input) {
    i = i.replace("'", "");
    i = i.replace(" ", "");
    i = i.split("=");
    if (i[0] === "key") {
      keyAgeList[0] = i[1];
    } else {
      keyAgeList[1] = i[1];
    }
    if (keyAgeList.length > 1) {
      let x = {
        key: keyAgeList[0].replace("'", ""),
        age: keyAgeList[1].replace("'", ""),
      };
      output.push(x);
      keyAgeList = [];
    }
  }
console.log(JSON.stringify(output))

  return JSON.stringify(output);
};
parser("key='jio3298', age=24, key='oijf032', age=62")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-06
    • 2017-04-27
    • 2018-06-28
    • 2014-07-06
    • 2013-10-29
    相关资源
    最近更新 更多