Javascript jquery中有两个json文件,一个用于获取数据值,另一个用于获取数据类型
我正在尝试使用两个json文件。一个用于获取数据的数据类型,另一个用于获取数据的数据值。 因为我不知道如何在一个json文件中使用两个json文件,所以我在一个变量中存储了一个json值Javascript jquery中有两个json文件,一个用于获取数据值,另一个用于获取数据类型,javascript,jquery,json,Javascript,Jquery,Json,我正在尝试使用两个json文件。一个用于获取数据的数据类型,另一个用于获取数据的数据值。 因为我不知道如何在一个json文件中使用两个json文件,所以我在一个变量中存储了一个json值 var data = { “name”: “classxyz”, “number”:”abc”, Fields : [ { “name”: ”studentname”, “marks”:”int” “doc”: “failed” } ] } 第二个json文件“student.
var data = {
“name”: “classxyz”,
“number”:”abc”,
Fields : [
{
“name”: ”studentname”,
“marks”:”int”
“doc”: “failed”
}
]
}
第二个json文件“student.json”
{
“datasvalue”:
[
{
“studentname”: “Jack”,
“marks”: “18”,
“place”: “newyork”
},
{
“studentname”: “sparrow”,
“marks”: “12”,
“place”: “london”
}
]
}
我想从第一个json中获取数据类型的值,并将其签入第二个json,然后显示在第一个json中获取的数据类型的值。
示例:从第一个json开始,我的搜索名称是“studentname”,现在我想打印这个“studentname”作为标签,在第二个json文件(student.json)中搜索它,并在textfield中的studentname前面打印它的值(sparrow)。
当我打印“marks”时,它应该从第一个json文件中检查它是否具有“int”类型,并从student.json值18中搜索它的值。如果我尝试输入任何其他值,它不应允许我输入
到目前为止,我能够做到以下几点,这与我必须做的事情相去甚远
我们不能在一个程序中使用两个json吗?为什么.inArray不是这样工作的
function ViewData()
{
function toArray(obj) {
var result = [];
for (var key2 in obj) {
var value = obj[key2];
result.push(key2);
if (typeof value === 'object') {
result.push(toArray(value));
} else {
result.push(value);
}
$('#stage').append('<p>'+ key2+' : '+ "<input id=\"txtv\" type=\"text\" value=\""+value+"\"/>");
}
return result;
}
var arra =[];
arra = JSON.strigify(toArray(data));
$('#stage1').html('<p>'+arra + "<br>"+'</p>');
//$('#stage1':contains('day'));
}
$.getJSON('student.json',
function(datas)
{
// Create an array to hold the data.
var items = [];
var storeName=[];
var storeValue=[];
// Parse the data by looking at each entry in the dates object.
$.each(datas.datasvalue,
function(key1, value1)
{
var i=0;
$.each(value1, function(key,value){
storeName[i]= key;
storeValue[i] = value;
$('#stage2').each(function(){
// if($.inArray(key.text(),arra)){
alert($.inArray(key,arra));
$(this).append('<p>'+ key+' : '+ "<input id=\"txtv\" type=\"text\" value=\""+value+"\"/>");
// }
}); // end of stage each funtion
i++;
}); // end of value and key funtion
}); // end of value1 function
}); // end of function (data)
函数ViewData()
{
功能到阵列(obj){
var结果=[];
用于(obj中的var键2){
var值=对象[key2];
结果。按下(键2);
如果(值的类型==='object'){
结果.推送(到阵列(值));
}否则{
结果:推(值);
}
$(“#stage”).append(“”+key2+”:“+”);
}
返回结果;
}
var arra=[];
arra=JSON.strigify(toArray(data));
$('#stage1').html(''+arra+“
'+'');
//$(#stage1):包含('day');
}
$.getJSON('student.json',
功能(数据)
{
//创建一个数组来保存数据。
var项目=[];
var storeName=[];
var-storeValue=[];
//通过查看dates对象中的每个条目来解析数据。
$。每个(datas.datasvalue,
功能(键1,值1)
{
var i=0;
$。每个(值1,函数(键,值){
storeName[i]=密钥;
storeValue[i]=价值;
$('#stage2')。每个(函数(){
//if($.inArray(key.text(),arra)){
警报($.inArray(key,arra));
$(this.append(“”+key+”:“+”);
// }
});//每个功能的阶段结束
i++;
});//值的结尾和键函数
});//value1函数的结尾
}); // 功能结束(数据)
这很复杂。谢谢你的评论。不再感到愚蠢:)我正在做一些复杂的事情:)哈哈!是的——去过那里/做过那件事。有时,使事情变得完整就是使事情变得太复杂。通过对模式进行硬编码,您可能可以减少大量代码和复杂性。或者重新构建您的数据。例如,如果数据在数据库中,您会这样做吗?对不起,很遗憾,我无法更改数据结构:(我必须这样做。