如何将字符串转换为对象数组?

时间:2018-05-15 10:16:03

标签: javascript

let str="{SPOT:0,0:10,1:0},{SPOT:1,0:5,1:5}";
let result=[{"SPOT":0,"0":10,"1":0},{"SPOT":1,"0":5,"1":5}];

如何将字符串转换为对象数组

2 个答案:

答案 0 :(得分:0)

嗯,这不是我说的最好的方法,但仍然会解决你的问题:



let str = "{SPOT:0,0:10,1:0},{SPOT:1,0:5,1:5}";
let newStr = str.replace("},{", "}TempString{"); //append any dummy string in the existing one
let result = newStr.split("TempString");

console.log(result)




答案 1 :(得分:0)

我们可以使用template literalsreplace一点使它看起来像一个数组。

当它看起来正确时,我们可以使用JSON.parse将其实际转换为数组

现在我们有一个数组,我们可以使用forEach遍历每个字符串并使它们看起来像对象,我们将再次使用replace

一旦我们使每个字符串看起来像一个对象,我们可以push将它们变成一个空结果数组,我们必须在循环之外创建一个。

将所有这些放在一起看起来有点像这样:

 @JmsListener(destination = "orderQueue")
 public void receiveMessage(Message message) throws IOException {
    Order order = (Order)jaxb2Marshaller.unmarshal(new StringSource(((TextMessage) message).getText()));
        OrderDetails orderDetails = orderTransformer.transform(order);
        orderService.saveOrder(orderDetails);
 }

我希望你觉得这很有用。