如何将javascript数组更改为angular-schema-form的JSON对象?

Bre*_*t R 1 javascript json angularjs ionic-framework angular-schema-form

我需要一些帮助,请转换一个javascript生成的数组,我准备使用angular-schema-form(需要一个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);

}
Run Code Online (Sandbox Code Playgroud)

这是数组的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"
Run Code Online (Sandbox Code Playgroud)

我试图使用JSON.stringify将上面的内容转换为JSON,但这会返回一个空结果.

我也尝试将数组传递给angula.toJson,但我也得到了一个空的结果.

var myJsonString = angular.toJson(objectSchema, true);
console.log(myJsonString);

// result 

[
  [],
  []
]
Run Code Online (Sandbox Code Playgroud)

如果您对我有任何指示,请关注它将不胜感激.

谢谢B

Mik*_*ant 5

您正在看到此行为,因为您将fieldObject实例化为数组而不是对象.然后,您尝试向此数组添加属性,这实际上没有意义,更重要的是,实际上并没有按照您的意图填充数据结构.

当你尝试序列化时会发生什么,是数组(它仍然是空的),序列化为一个空数组,你丢失了对象属性.

尝试:

var fieldObject = {};
Run Code Online (Sandbox Code Playgroud)

这是一个演示行为的小提琴 - http://jsfiddle.net/ko8d0w5b/