如何将字符串解析为 "header object"?
How do I parse a string into "header object"?
我在 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。我什至不知道那种结构的名称,所以我一直在努力研究如何解析它。
你有什么线索吗?
稍加修改,您就可以正确设置字符串的格式并将其值放入对象中。然后将整个对象传递到您的 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);
我假设 /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
假设你的意思是 /n 而不是 \n
var str = ' "foo": "" , /n "bar": "" ';
JSON.parse(('{' + str + '}').replace(' /n', ''));
我在 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。我什至不知道那种结构的名称,所以我一直在努力研究如何解析它。
你有什么线索吗?
稍加修改,您就可以正确设置字符串的格式并将其值放入对象中。然后将整个对象传递到您的 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);
我假设 /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
假设你的意思是 /n 而不是 \n
var str = ' "foo": "" , /n "bar": "" ';
JSON.parse(('{' + str + '}').replace(' /n', ''));