我有一个简单的Json字符串
<script type="text/javascript">
$(document).ready(function() {
$('#summernote').summernote({
height: 250,
disableResizeEditor: true // This is optional if you want to remove resize
});
});
</script>
我想通过Javascript在ValueInput的Data中获取字段名称。
请帮助我!
答案 0 :(得分:4)
您需要遍历数组,然后解析字符串化的JSON,以便可以访问data
数组。然后,只需循环data
数组即可获取每个name
属性的值。
var arr = [{
"assetName": "LCT",
"assetValue": "",
"typeValueInput": "select",
"valueInputSelect": null,
"required": true,
"valueInput": "{\"data\":[{\"name\":\"name1\",\"id\":\"12\"},{\"name\":\"name2\",\"id\":\"13\"},{\"name\":\"name3\",\"id\":\"14\"}]}"
}];
arr.forEach((arrObj) => {
var jsonData = JSON.parse(arrObj.valueInput);
jsonData.data.forEach(({name}) => console.log(name));
});
答案 1 :(得分:1)
您可以使用JSON.parse
var jsonArray = [
{
assetName: 'LCT',
assetValue: '',
typeValueInput: 'select',
valueInputSelect: null,
required: true,
valueInput:
'{"data":[{"name":"name1","id":"12"},{"name":"name2","id":"13"},{"name":"name3","id":"14"}]}'
}
];
let name = jsonArray[0].valueInput;
name = JSON.parse(name);
name.data.forEach(value => {
console.log(value.name, value.id);
});
答案 2 :(得分:0)
您可以使用JSON.parse
JSON.parse(o[0].valueInput).data[0].name
var o = [
{
"assetName":"LCT",
"assetValue":"",
"typeValueInput":"select",
"valueInputSelect":null,
"required":true,
"valueInput":"{\"data\":[{\"name\":\"name1\",\"id\":\"12\"},{\"name\":\"name2\",\"id\":\"13\"},{\"name\":\"name3\",\"id\":\"14\"}]}"
}
]
console.log(JSON.parse(o[0].valueInput).data[0].name);
// To get all, use a loop
var arrO = JSON.parse(o[0].valueInput).data;
arrO.forEach((obj) => console.log(obj.name))
答案 3 :(得分:0)
使用JSON.parse
,然后使用map
:
const data = [{
"assetName": "LCT",
"assetValue": "",
"typeValueInput": "select",
"valueInputSelect": null,
"required": true,
"valueInput": "{\"data\":[{\"name\":\"name1\",\"id\":\"12\"},{\"name\":\"name2\",\"id\":\"13\"},{\"name\":\"name3\",\"id\":\"14\"}]}"
}]
const names = JSON.parse(data[0].valueInput).data.map(({ name }) => name);
console.log(names);
答案 4 :(得分:0)
您可以这样做:
const arr = [{"assetName": "LCT","assetValue": "","typeValueInput": "select","valueInputSelect": null,"required": true,"valueInput": "{\"data\":[{\"name\":\"name1\",\"id\":\"12\"},{\"name\":\"name2\",\"id\":\"13\"},{\"name\":\"name3\",\"id\":\"14\"}]}"}];
arr.forEach(o => JSON.parse(o.valueInput).data.forEach(({id, name}) => console.log(id, name)));
答案 5 :(得分:0)
您可以使用array
变量和JSON.parse
的回调函数来获取名称key
和val
let dt = [{
"assetName": "LCT",
"assetValue": "",
"typeValueInput": "select",
"valueInputSelect": null,
"required": true,
"valueInput": "{\"data\":[{\"name\":\"name1\",\"id\":\"12\"},{\"name\":\"name2\",\"id\":\"13\"},{\"name\":\"name3\",\"id\":\"14\"}]}"
}];
let nameArray = [];
let dlt = JSON.parse(dt[0].valueInput, function(key, val) {
if (key === 'name') {
nameArray.push(val);
}
})
console.log(nameArray)
答案 6 :(得分:0)
这是一种方法。
let originalData = [
{
"assetName":"LCT",
"assetValue":"",
"typeValueInput":"select",
"valueInputSelect":null,
"required":true,
"valueInput":"{\"data\":[{\"name\":\"name1\",\"id\":\"12\"},{\"name\":\"name2\",\"id\":\"13\"},{\"name\":\"name3\",\"id\":\"14\"}]}"
}
];
let valueInput = JSON.parse(originalData[0].valueInput);
let data = valueInput.data;
console.log(data);
for (var i = 0; i < data.length; i++){
console.log(data[i].name);
}
请参见jsfiddle https://jsfiddle.net/3s1na4eL/3/
让我知道是否有任何问题。