通过 JSON-data 解析并获得一个对象
Parsing though JSON-data and getting one Object
我在 SAPUI5 应用程序中得到一个简单的 JSON 数据结构,其中包含 phone 号码、传真号码和手机号码:
{
"teles": [
{"tele": "05312024040", "default": true},
{"tele": "017666254336", "default": false},
{"tele": "017666224336", "default": false}
],
"faxs": [
{"fax":"053155599755", "default": true},
{"fax":"01548568745", "default": false}
],
"mobils": [
{"mobil":"017655994816", "default": true},
{"mobil":"01548568745", "default": false}
]
}
我的目标是loop/parse通过数据结构并得到默认的数字,并将其放入另一个名为"tele-standard"、"fax-standard"或[=28的模型中=].这应该在显示数据之前发生,因此可以将其放入这些可编辑的文本字段中:
我完全不知道如何使用 jquery、sapui5 或 javascript 来实现我的目标。你能帮忙吗?
新模型的结果应如下所示:
{
"archived": "-",
"nummer": "12",
"anrede": "Herr",
"vorname": "Osamah",
"nachname": "Al-Doaiss",
"tele-default": "05312024040",
"fax-defaule": "053155599755",
"mobil-default": "017655994816"
}
TL;DR:我有一个带数组的 JSON。我想解析它们并获得默认数字。不知道怎么做!
将数据视为您的对象:
for(var phone in data.teles) {
if(phone.default == true) {
// Example on how to set phone number with jquery
$('#defaultPhone').val(phone.tele);
// You would need an input with the id defaultPhone for this
}
}
编辑:关于您的更新,您可能会这样做(将变量结果视为您的结果对象)
result.tele-default = phone.tele //instead of the jquery part in the upper example
看到这个
var numbers = {
"teles": [
{"tele": "05312024040", "default": true},
{"tele": "017666254336", "default": false},
{"tele": "017666224336", "default": false}
],
"faxs": [
{"fax":"053155599755", "default": true},
{"fax":"01548568745", "default": false}
],
"mobils": [
{"mobil":"017655994816", "default": true},
{"mobil":"01548568745", "default": false}
]
};
function getAllDefaultNumbers(nums) {
var outObj = {};
(Object.keys(nums) || []).forEach(function (number_type) {
(nums[number_type] || []).forEach(function (obj) {
if (obj.default) {
outObj[number_type + '-default'] = obj.tele || obj.fax || obj.mobil;
}
});
});
return outObj;
}
document.getElementById('out').innerHTML = JSON.stringify(getAllDefaultNumbers(numbers));
<div id="out"></div>
试试这个
1
var data = {
"teles": [
{"tele": "05312024040", "default": true},
{"tele": "017666254336", "default": false},
{"tele": "017666224336", "default": false}
],
"faxs": [
{"fax":"053155599755", "default": true},
{"fax":"01548568745", "default": false}
],
"mobils": [
{"mobil":"017655994816", "default": true},
{"mobil":"01548568745", "default": false}
]
};
var model = {
"archived": "-",
"nummer": "12",
"anrede": "Herr",
"vorname": "Osamah",
"nachname": "Al-Doaiss"
};
Object.keys(data).forEach(function (key) {
data[key].forEach(function (el) {
var keys = Object.keys(el),
key = keys.join('-');
if (el.default && el.default === true && !model[key]) {
model[keys.join('-')] = el[keys[0]];
}
});
});
console.log(model);
2
var data = {
"teles": [
{"tele": "05312024040", "default": true},
{"tele": "017666254336", "default": false},
{"tele": "017666224336", "default": false}
],
"faxs": [
{"fax":"053155599755", "default": true},
{"fax":"01548568745", "default": false}
],
"mobils": [
{"mobil":"017655994816", "default": true},
{"mobil":"01548568745", "default": false}
]
};
var model = {
"archived": "-",
"nummer": "12",
"anrede": "Herr",
"vorname": "Osamah",
"nachname": "Al-Doaiss"
};
Object.keys(data).forEach(function (key) {
data[key].forEach(function (el) {
var keys = Object.keys(el),
key = keys.join('-');
if (el.default && el.default === true && !model[key]) {
model[key] = el[keys[0]];
}
});
});
console.log(model);
以下代码片段用于获取默认电话号码。
vals 将存储您的 JSON 数据。
objJson = JSON.parse(vals);
var tele_default;
if(objJson.teles.count>0){
for(int i=0;i<objJson.teles.count;i++){
if(objJson.teles[i].default == "true"){
tele_default = objJson.teles[i].tele
}
}
}
我在 SAPUI5 应用程序中得到一个简单的 JSON 数据结构,其中包含 phone 号码、传真号码和手机号码:
{
"teles": [
{"tele": "05312024040", "default": true},
{"tele": "017666254336", "default": false},
{"tele": "017666224336", "default": false}
],
"faxs": [
{"fax":"053155599755", "default": true},
{"fax":"01548568745", "default": false}
],
"mobils": [
{"mobil":"017655994816", "default": true},
{"mobil":"01548568745", "default": false}
]
}
我的目标是loop/parse通过数据结构并得到默认的数字,并将其放入另一个名为"tele-standard"、"fax-standard"或[=28的模型中=].这应该在显示数据之前发生,因此可以将其放入这些可编辑的文本字段中:
我完全不知道如何使用 jquery、sapui5 或 javascript 来实现我的目标。你能帮忙吗?
新模型的结果应如下所示:
{
"archived": "-",
"nummer": "12",
"anrede": "Herr",
"vorname": "Osamah",
"nachname": "Al-Doaiss",
"tele-default": "05312024040",
"fax-defaule": "053155599755",
"mobil-default": "017655994816"
}
TL;DR:我有一个带数组的 JSON。我想解析它们并获得默认数字。不知道怎么做!
将数据视为您的对象:
for(var phone in data.teles) {
if(phone.default == true) {
// Example on how to set phone number with jquery
$('#defaultPhone').val(phone.tele);
// You would need an input with the id defaultPhone for this
}
}
编辑:关于您的更新,您可能会这样做(将变量结果视为您的结果对象)
result.tele-default = phone.tele //instead of the jquery part in the upper example
看到这个
var numbers = {
"teles": [
{"tele": "05312024040", "default": true},
{"tele": "017666254336", "default": false},
{"tele": "017666224336", "default": false}
],
"faxs": [
{"fax":"053155599755", "default": true},
{"fax":"01548568745", "default": false}
],
"mobils": [
{"mobil":"017655994816", "default": true},
{"mobil":"01548568745", "default": false}
]
};
function getAllDefaultNumbers(nums) {
var outObj = {};
(Object.keys(nums) || []).forEach(function (number_type) {
(nums[number_type] || []).forEach(function (obj) {
if (obj.default) {
outObj[number_type + '-default'] = obj.tele || obj.fax || obj.mobil;
}
});
});
return outObj;
}
document.getElementById('out').innerHTML = JSON.stringify(getAllDefaultNumbers(numbers));
<div id="out"></div>
试试这个
1
var data = {
"teles": [
{"tele": "05312024040", "default": true},
{"tele": "017666254336", "default": false},
{"tele": "017666224336", "default": false}
],
"faxs": [
{"fax":"053155599755", "default": true},
{"fax":"01548568745", "default": false}
],
"mobils": [
{"mobil":"017655994816", "default": true},
{"mobil":"01548568745", "default": false}
]
};
var model = {
"archived": "-",
"nummer": "12",
"anrede": "Herr",
"vorname": "Osamah",
"nachname": "Al-Doaiss"
};
Object.keys(data).forEach(function (key) {
data[key].forEach(function (el) {
var keys = Object.keys(el),
key = keys.join('-');
if (el.default && el.default === true && !model[key]) {
model[keys.join('-')] = el[keys[0]];
}
});
});
console.log(model);
2
var data = {
"teles": [
{"tele": "05312024040", "default": true},
{"tele": "017666254336", "default": false},
{"tele": "017666224336", "default": false}
],
"faxs": [
{"fax":"053155599755", "default": true},
{"fax":"01548568745", "default": false}
],
"mobils": [
{"mobil":"017655994816", "default": true},
{"mobil":"01548568745", "default": false}
]
};
var model = {
"archived": "-",
"nummer": "12",
"anrede": "Herr",
"vorname": "Osamah",
"nachname": "Al-Doaiss"
};
Object.keys(data).forEach(function (key) {
data[key].forEach(function (el) {
var keys = Object.keys(el),
key = keys.join('-');
if (el.default && el.default === true && !model[key]) {
model[key] = el[keys[0]];
}
});
});
console.log(model);
以下代码片段用于获取默认电话号码。 vals 将存储您的 JSON 数据。
objJson = JSON.parse(vals);
var tele_default;
if(objJson.teles.count>0){
for(int i=0;i<objJson.teles.count;i++){
if(objJson.teles[i].default == "true"){
tele_default = objJson.teles[i].tele
}
}
}