将API返回的字符串转换为javascript对象的最佳方法是什么?这是aspnet核心中ModelState验证的结果。
字符串看起来像这样{" cars [2] .color"," blue"}
我需要转换"汽车[2] .color"到一个对象
{
cars: [
{},
{},
{
color: "blue"
}
]
}
答案 0 :(得分:0)
根据您用来获取API的框架,一般来说它应该足够聪明,可以自动为您完成,特别是如果aspnet中的API将内容类型设置为响应中的application / json。例如,如果使用jquery:
$.ajax({
url:'/api/v1/cars',
type:'get',
dataType: 'json', //Optional, generally speaking
success: function(data) {
console.log(data); // This will be an object
}
});
一般情况下,如果要将一些json文本转换为javascript中的对象,可以使用本机JSON.parse方法:
var jsonObject = JSON.parse("{
cars: [
{},
{},
{color: "blue"}
]
}"); //Returns an object
答案 1 :(得分:0)
如果您尝试解析选择器路径,则可以将段转换为数组:
function parsePath(string) {
var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g
var result = []
string.replace(rePropName, function(match, number, quote, string) {
result.push(quote ? string.replace(/\\(\\)?/g, '$1') : (number || match));
});
return result;
}

确定每个段是否应该是一个数组而不是对象不能确定
答案 2 :(得分:0)
var jsonStr = '{"cars":[{},{},{"color":"blue"}]}';
var jsonObj = JSON.parse(jsonStr);
console.log(jsonObj.cars[2]); // Object {color: "blue"}