如何将javascript数组更改为角度模式形式的JSON对象
How to change a javascript array to a JSON object for angular-schema-form?
我需要一些帮助,请转换一个javascript生成的数组,该数组正准备由angular schema表单使用(需要一个JSON对象)。
我使用for循环创建了一个数组,其中包含一些从$http请求中检索到的字段项。
我能够毫无问题地创建数组,但是,当我现在尝试为角模式表单对象准备数组时,这就是我将其转换为所需的JSON对象格式时遇到的问题。
我用这样的javascript创建数组,
var objectSchema = [];
for(index = 0; index < instanceFields.length; index++)
{
var fieldObject = [];
fieldObject.id = instanceFields[index].id;
fieldObject.title = instanceFields[index].description;
fieldObject.type = pass_type;
fieldObject.value = instanceFields[index].value.raw;
objectSchema.push(fieldObject);
}
这是数组的console.log。
console.log(objectSchema);
// result
0: Array[0]
id: "103859"
length: 0
title: "Summary"
type: "string"
value: ""
1: Array[0]
id: "101842"
length: 0
title: "Job Type"
type: "string"
value: "696"
我曾尝试使用JSON.stringify将上面的内容转换为JSON,但结果为空。
我也试过把数组传给angular.toJson,但我也得到了一个空的结果。
var myJsonString = angular.toJson(objectSchema, true);
console.log(myJsonString);
// result
[
[],
[]
]
如果您有任何指示,请遵照执行,我们将不胜感激。
谢谢B
您之所以看到这种行为,是因为您将fieldObject实例化为数组而不是对象。然后,您尝试将属性添加到该数组中,这实际上没有意义,更重要的是,实际上并没有按照您的意愿填充数据结构。
当您尝试序列化时,会发生的情况是数组(仍然为空)序列化为空数组,并且您会丢失其上的对象属性。
尝试:
var fieldObject = {};
这是一把小提琴,展示了这种行为——http://jsfiddle.net/ko8d0w5b/
试试这个小提琴。。http://jsfiddle.net/lalith_ram/809ubtvj/将变量fieldObject实例化为对象。
var objectSchema = {};
for(index = 0; index < 1; index++){
var fieldObject = {};
fieldObject.id = "101";
fieldObject.title = "Hello";
fieldObject.type = "sometype";
fieldObject.value = "somevalue";
objectSchema = fieldObject;
}
var test = JSON.stringify(objectSchema);
alert(test);
我使用微软的JavaScriptSerializer,它对我们来说很好。AFAIK,JavaScript格式与JSON格式(即"JSON"中的"JS")是一样的。这样使用:
JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();
string myJsonString;
myJsonString = javaScriptSerializer.Serialize(myObject);
可能还有其他更快或更好的序列化程序,但这是一种只使用Microsoft工具就能快速完成的方法。
这里引用了微软的DataContractJsonSerializer,它看起来更复杂:https://msdn.microsoft.com/en-us/library/bb412179(v=vs.110).aspx
这有帮助吗?
- Javascript,访问一个主要对象模块模式中的每个对象
- Mongoose TypeError:实例化模式类型的对象时,对象不是函数
- 从联合js rect对象调用引导模式
- 堆和工厂模式中的本地对象
- ES6 const,用于在JavaScript中创建对象原型;这是一种模式吗
- JavaScript模块模式-如何在使用对象/函数之前激发构造函数/init函数
- 如何在javascript对象中设置属性的类型,就像mongoose模式设计一样
- Mongoose模式:强制创建一个对象数组
- 解释主干对象和类创建模式
- 包含 2 个或更多对象的页面上的 JavaScript 设计模式
- Ace代码编辑器:缓存模式对象
- 如何通过向用户推送模式引用来更新用户对象's数组字段
- 对象绑定模式的rest属性应该是最后一个
- 如何将javascript数组更改为角度模式形式的JSON对象
- JS:两个或多个非严格模式下具有相同名称的对象属性
- 如何在不选择模式配置参数的情况下,使用mongoose在MongoDB模式实例化中的关联数组/对象中执行foreach
- Knockout:为许多数据对象绑定模板引导模式
- 揭示模块模式:对象未定义
- 我如何存储数据使用这种模式-对象内对象内对象或对象内对象内数组
- 向现有模块化模式对象添加新方法