将字符串定义转换为javascript对象

时间:2017-04-19 18:06:53

标签: javascript json asp.net-core-mvc

将API返回的字符串转换为javascript对象的最佳方法是什么?这是aspnet核心中ModelState验证的结果。

字符串看起来像这样{" cars [2] .color"," blue"}

我需要转换"汽车[2] .color"到一个对象

 {
   cars: [
      {},
      {},
      {
      color: "blue"
     }
   ]
 }

3 个答案:

答案 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"}