Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
比较json对象和javascript的结构_Javascript_Json_Postman - Fatal编程技术网

比较json对象和javascript的结构

比较json对象和javascript的结构,javascript,json,postman,Javascript,Json,Postman,我正在编写一个测试函数postman,以检查json对象是否具有相同的键以及每个键是否具有相同的数据类型 我有3个json对象 var test1 = { "abc" : 1, "qwe" : "random", "arrayExample" : [{"var1" : 11, "var2" : 22}, {"var1" : 21314, "var2" : 99}] } var test2 = { "abc" : 3, "qwe" : "Another

我正在编写一个测试函数postman,以检查json对象是否具有相同的键以及每个键是否具有相同的数据类型

我有3个json对象

var test1 = {
    "abc" : 1,
    "qwe" : "random",
    "arrayExample" : [{"var1" : 11, "var2" : 22}, {"var1" : 21314, "var2" : 99}]
}


var test2 = {
    "abc" : 3,
    "qwe" : "Another String",
    "arrayExample" : [{"var1": 435, "var2": 897}]
}


var test3 = {
    "abc" : 46,
    "qwe" : "Nothing special",
    "arrayExample" : [{"var1": 098, "var9" : "string here"}]
}
我想测试这些键,每个键的值也是相同的类型

例如,如果我的比较函数名为compare,如果对象类型相同,则返回true

function compare(obj1, obj2){
    <NEED HELP HERE>
}

因为

typeOf( test1["arrayExample"] ) = typeOf( test2["arrayExample"] ) = array of same JSON type
但是


如果您的问题仅涉及比较单个属性值,则可以执行以下操作:

  • 确保两个对象具有相同数量的关键点
  • 确保相同命名属性的值类型相同
const测试={
4:{a:1,b:AA},
5:{b:“BB”,a:2},
6:{a:3,b:999},
7:{a:4,c:“CC”},
8:{a:5,b:DD,c:999},
9:{a:6,b:EE,c:undefined}
};
常量比较=(obj1,obj2)=>{
让相似=真实;
常量obj1Keys=对象密钥(obj1);
const obj2Keys=Object.keys(obj2);
if(obj1Keys.length!==obj2Keys.length){
相似=错误;
}否则{
obj1Keys.forEach(key=>{
相似=(obj1[键的类型]==obj2[键的类型]);
});
}
回报相似;
};
常量检查=(a,b)=>{
log(`testobjects${a}和${b}相似?${compare(tests[a],tests[b])}`);
};
检查(4,5);
检查(4,6);
检查(4,7);
检查(4,8);

检查(4,9) [ A ],2 ] < /代码>?它是否与
[1,“b”]
的类型相同?只需创建函数(声明要检查的规则)并循环您的json对象:)@smarx我的数组将包含json,我假设所有数组中都包含相同的json类型。我将编辑问题alittle@AgentWeirdo如果我理解正确,您只需检查数组的第一个元素,然后检查是否匹配。看起来您已经准备好开始编写代码了!:-)如果您有特定问题需要帮助,请告知我们。
compare(test1, test3) == compare(test2, test3) == false
typeOf( test1["arrayExample"] ) = typeOf( test2["arrayExample"] ) = array of same JSON type
typeOf( test3["arrayExample"]) = array of different json type