Ich habe ein JSON-Objekt wie dieseWie bekomme ich Json-Objekt und verschachteltes Objekt Eigenschaftsnamen und Werte in AngularJs?
{
"from": {
"required": false,
"type": {
"name": {
"required": false,
"type": "String"
},
"email": {
"required": true,
"type": "String"
}
}
},
"to": {
"required": true,
"type": [
{
"name": {
"required": false,
"type": "String"
},
"email": {
"required": true,
"type": "String"
}
}
]
},
"subject": {
"required": true,
"type": "String"
},
"text": {
"required": true,
"type": "String"
},
"html": {
"required": true,
"type": "String"
}
}
Das Objekt verschachtelte Objekte enthält, mit Eigenschaften von verschiedenen Diensten festgelegt zu werden. Daher werden Eigenschaftsnamen dynamisch geändert. Ich möchte Eigenschaftsnamen und entsprechende Werte erhalten. Ich habe den folgenden Code bereits ausprobiert.
for (var prop in data) {
$scope.fieldsInfo.push({ "label": prop, "required":data.hasOwnProperty(prop) });
}
In den obigen Code iam Namen bekommen (ab) und auch geforderten Wert, jetzt will ich verschachtelte Objekt Eigenschaftsnamen (Name, E-Mail) und auch (erforderlich, Typ) Werte innerhalb des Namensobjekts erhalten. In der obigen Aufgabe enthält from
type
ein Objekt ist so isArray:false
und nächstes Objekt to
type
enthält ein Array ist so isArray:true
verbleibenden Objekte type
eine Zeichenfolge ist so isArray:false
. Ausgabe wie folgt
$scope.fieldsInfo=[];
$scope.fieldsInfo=[
{
"label" :"from",
"required" :false,
"isArray" :false,
"type" : [
{
"label" :"name",
"type" : "String",
"required": false
}
{
"label" : "email",
"type" : "String",
"required": true
}
]
},
{
"label" :"to",
"required" :true,
"isArray" :true,
"type" : [
{
"label" : "name",
"type" : "String",
"required": false
}
{
"label" : "email",
"type" : "String",
"required": true
}
]
},
{
"label" :"subject",
"required" :true,
"isArray" :false,
"type" :"String"
},
{
"label" :"text",
"required" :true,
"isArray" :false,
"type" :"String"
},
{
"label" :"html",
"required" :true,
"isArray" :false,
"type" :"String"
}
]