我需要一些帮助,请转换我准备由 angular-schema-form 使用的 javascript 生成的数组(需要 JSON 对象)。
我使用 for 循环创建了一个数组,其中包含我从 $http 请求中检索到的一些字段项。
但是,我能够毫无问题地创建数组,当我现在尝试为 angular-schema-form 对象准备它时,这就是我在将其转换为所需的 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(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,但这返回的是空结果。
我也尝试过将数组传递给 angula.toJson,但我得到的结果也是空的。
var myJsonString = angular.toJson(objectSchema, true);
console.log(myJsonString);
// result
[
[],
[]
]
如果您对我有任何指示,请遵照指示,我们将不胜感激。
谢谢 B
最佳答案
您看到此行为是因为您将 fieldObject 实例化为数组而不是对象。然后,您尝试向该数组添加属性,这实际上没有任何意义,更重要的是,实际上并没有按照您的预期填充数据结构。
当您尝试序列化时,数组(仍然是空的)序列化为一个空数组,并且您丢失了它的对象属性。
尝试:
var fieldObject = {};
这是一个演示行为的 fiddle - http://jsfiddle.net/ko8d0w5b/
关于javascript - 如何将 javascript 数组更改为 angular-schema-form 的 JSON 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28548882/