我如何将字符串解析为“标题对象”?

问题描述 投票:0回答:2

我在Javascript中有一个字符串。它看起来像这样:

' "foo": "" , /n "bar": "" '

我需要它,因此我可以请求API,并且这样发出请求:

$http
  .post(urlToAPI, {
    "foo": "",
    "bar": ""
  })
  .success(function(data) {
    console.log("yay")
  })

您可以看到,作为参数,我给了post方法一个包含foo和bar的结构。问题是我无法在其中传递自己的字符串,因为我需要在之前对其进行解析。

所以,基本上,我需要这个

' "foo": "" , /n "bar": "" '

成为这个:

"foo": "", "bar": ""

我尝试使用JSON.parse(),但由于它不是JSON对象,因此无法使用。我也尝试了一些CSV转换器,但似乎也不是CSV。我什至不知道这种结构的名称,所以我一直在努力解析它。

您有任何线索吗?

javascript string-parsing
2个回答
0
投票

通过一些按摩,您可以正确设置字符串格式并将其值放入对象中。然后只需将整个对象传递给您的AJAX调用即可:

.post(urlToAPI, obj)

let str = ' "foo": "" , /n "bar": "" ';
const arr = str.trim().replace("/n","").split("\"").join("").split(",");
const obj = {};
arr.forEach((el, idx) => {
  let arr2 = el.split(":");
  obj[arr2[0].trim()] = arr2[1].trim(); 
});

console.log(obj);

0
投票

假设您的意思是/ n而不是\ n

var str = ' "foo": "" , /n "bar": "" ';
JSON.parse(('{' + str + '}').replace(' /n', ''));

0
投票

如果/n实际上是\n,则可以轻松地将其解析为JSON:

let text = ' "foo": "" , \n "bar": "" ';
let result = JSON.parse(`{${text}}`);
console.log(result);

-1
投票

我假设/n实际上是\n(换行符)。在这种情况下,您可以利用eval函数将字符串解析为json:

var input=' "foo": "" , \n "bar": "" ';
var serial="json={"+input+"}";
var json=eval(serial);
// Now you can access json.foo and json.bar
© www.soinside.com 2019 - 2024. All rights reserved.