Javascript 基于另一个JSON对象的值访问JSON对象

Javascript 基于另一个JSON对象的值访问JSON对象,javascript,jquery,json,Javascript,Jquery,Json,请原谅我的主题行。我不明白该放什么 我有一些动态生成的数据。数据与此类似 var TypeA ={ "length" : "100" , "width" :"80" , "color" : "#ffffff" } var TypeB ={ "length" : "150" , "width" :"120" , "color" : "#4286f4" } var TypeC ={ "length" : "150" , "width" :"120" , "color" : "#4202f4"

请原谅我的主题行。我不明白该放什么

我有一些动态生成的数据。数据与此类似

var TypeA ={ "length" : "100" , "width" :"80" , "color" : "#ffffff" }    
var TypeB ={ "length" : "150" , "width" :"120" , "color" : "#4286f4" }
var TypeC ={ "length" : "150" , "width" :"120" , "color" : "#4202f4" }
上面几个JSON分别定义了类型A、B、C的属性。(实际上,有多种类型。)

现在我有如下实际数据:

 var data =[{id : "1" , label : "A1" , type : "TypeA" },
            {id : "2" , label : "A2" , type : "TypeA" },
            {id : "3" , label : "B1" , type : "TypeB" },
            {id : "4" , label : "A3" , type : "TypeA" },
            {id : "5" , label : "C1" , type : "TypeC" },
            {id : "6" , label : "B2" , type : "TypeB" }
            ]
现在,我正在运行
数据
的循环。在这个循环中,我需要根据数据JSON中定义的
类型
访问类型属性

我正在做类似的事情,但似乎不起作用

$.each(JSON.parse(data), function(index,jsonObject){
      console.log("ColorCode : "+ jsonObject.type.color);
 });

有人能帮助我如何访问这里的类型属性吗。谢谢。

我建议您在对象中定义
类型

var obj = {
  "TypeA": {.... },
  "TypeB": {.... },,
  "TypeC": {.... },
};
然后可以轻松地使用访问基于属性的字符串键

 $.each(data, function(index,jsonObject){
      console.log("ColorCode : ", obj[jsonObject.type].color);
 });
var obj={
“A型”:{
“长度”:“100”,
“宽度”:“80”,
“颜色”:“#ffffff”
},
“B类”:{
“长度”:“150”,
“宽度”:“120”,
“颜色”:“4286f4”
},
“C类”:{
“长度”:“150”,
“宽度”:“120”,
“颜色”:“4202f4”
}
};
风险值数据=[{
id:“1”,
标签:“A1”,
类型:“A型”
},
{
id:“2”,
标签:“A2”,
类型:“A型”
},
{
id:“3”,
标签:“B1”,
类型:“类型B”
},
{
id:“4”,
标签:“A3”,
类型:“A型”
},
{
id:“5”,
标签:“C1”,
类型:“类型C”
},
{
id:“6”,
标签:“B2”,
类型:“类型B”
}
]
$.each(数据、函数(索引、jsonObject){
log(“ColorCode:”,obj[jsonObject.type].color);
});

我建议您在对象中定义
类型

var obj = {
  "TypeA": {.... },
  "TypeB": {.... },,
  "TypeC": {.... },
};
然后可以轻松地使用访问基于属性的字符串键

 $.each(data, function(index,jsonObject){
      console.log("ColorCode : ", obj[jsonObject.type].color);
 });
var obj={
“A型”:{
“长度”:“100”,
“宽度”:“80”,
“颜色”:“#ffffff”
},
“B类”:{
“长度”:“150”,
“宽度”:“120”,
“颜色”:“4286f4”
},
“C类”:{
“长度”:“150”,
“宽度”:“120”,
“颜色”:“4202f4”
}
};
风险值数据=[{
id:“1”,
标签:“A1”,
类型:“A型”
},
{
id:“2”,
标签:“A2”,
类型:“A型”
},
{
id:“3”,
标签:“B1”,
类型:“类型B”
},
{
id:“4”,
标签:“A3”,
类型:“A型”
},
{
id:“5”,
标签:“C1”,
类型:“类型C”
},
{
id:“6”,
标签:“B2”,
类型:“类型B”
}
]
$.each(数据、函数(索引、jsonObject){
log(“ColorCode:”,obj[jsonObject.type].color);
});

使用
窗口调用变量

var TypeA={“长度”:“100”,“宽度”:“80”,“颜色”:“ffffff”}
变量TypeB={“长度”:“150”,“宽度”:“120”,“颜色”:“#4286f4”}
变量TypeC={“长度”:“150”,“宽度”:“120”,“颜色”:“#4202f4”}
var dataO=[{id:“1”,标签:“A1”,类型:“TypeA”},
{id:“2”,标签:“A2”,类型:“TypeA”},
{id:“3”,标签:“B1”,类型:“TypeB”},
{id:“4”,标签:“A3”,类型:“TypeA”},
{id:“5”,标签:“C1”,类型:“TypeC”},
{id:“6”,标签:“B2”,类型:“TypeB”}];
/*数据已被解析*/
forEach(函数(键、索引){
console.log(窗口[key.type].color);
});
/*forEach(key=>console.log(window[key.type].color))*/

使用
窗口调用变量

var TypeA={“长度”:“100”,“宽度”:“80”,“颜色”:“ffffff”}
变量TypeB={“长度”:“150”,“宽度”:“120”,“颜色”:“#4286f4”}
变量TypeC={“长度”:“150”,“宽度”:“120”,“颜色”:“#4202f4”}
var dataO=[{id:“1”,标签:“A1”,类型:“TypeA”},
{id:“2”,标签:“A2”,类型:“TypeA”},
{id:“3”,标签:“B1”,类型:“TypeB”},
{id:“4”,标签:“A3”,类型:“TypeA”},
{id:“5”,标签:“C1”,类型:“TypeC”},
{id:“6”,标签:“B2”,类型:“TypeB”}];
/*数据已被解析*/
forEach(函数(键、索引){
console.log(窗口[key.type].color);
});
/*forEach(key=>console.log(window[key.type].color))*/

在您给出的示例中,您已经为每个类型定义定义了一个变量。这让他们更难接近。相反,您应该有以下两种情况之一:

var types = {
  "TypeA": { "length" : "100" , "width" :"80" , "color" : "#ffffff" },
  "TypeB": { "length" : "150" , "width" :"120" , "color" : "#4286f4" },
  "TypeC": { "length" : "150" , "width" :"120" , "color" : "#4202f4" }
};
或者这个:

var TypeA ={ "length" : "100" , "width" :"80" , "color" : "#ffffff" };  
var TypeB ={ "length" : "150" , "width" :"120" , "color" : "#4286f4" };
var TypeC ={ "length" : "150" , "width" :"120" , "color" : "#4202f4" };
var types = {
  "TypeA": TypeA,
  "TypeB": TypeB,
  "TypeC": TypeC
};
然后,很容易做到这一点:

JSON.parse(data).forEach(function(el) {
  console.log("ColorCode : " + types[el.type].color);
});
演示
var类型={
“TypeA”:{“长度”:“100”,“宽度”:“80”,“颜色”:“#ffffff”},
“TypeB”:{“长度”:“150”,“宽度”:“120”,“颜色”:“#4286f4”},
“类型C”:{“长度”:“150”,“宽度”:“120”,“颜色”:“#4202f4”}
};
var数据=[
{id:“1”,标签:“A1”,类型:“TypeA”},
{id:“2”,标签:“A2”,类型:“TypeA”},
{id:“3”,标签:“B1”,类型:“TypeB”},
{id:“4”,标签:“A3”,类型:“TypeA”},
{id:“5”,标签:“C1”,类型:“TypeC”},
{id:“6”,标签:“B2”,类型:“TypeB”}
];
data.forEach(函数(el){
log(“颜色代码:+types[el.type].color”);

});在您给出的示例中,您已经为每个类型定义定义了一个变量。这让他们更难接近。相反,您应该有以下两种情况之一:

var types = {
  "TypeA": { "length" : "100" , "width" :"80" , "color" : "#ffffff" },
  "TypeB": { "length" : "150" , "width" :"120" , "color" : "#4286f4" },
  "TypeC": { "length" : "150" , "width" :"120" , "color" : "#4202f4" }
};
或者这个:

var TypeA ={ "length" : "100" , "width" :"80" , "color" : "#ffffff" };  
var TypeB ={ "length" : "150" , "width" :"120" , "color" : "#4286f4" };
var TypeC ={ "length" : "150" , "width" :"120" , "color" : "#4202f4" };
var types = {
  "TypeA": TypeA,
  "TypeB": TypeB,
  "TypeC": TypeC
};
然后,很容易做到这一点:

JSON.parse(data).forEach(function(el) {
  console.log("ColorCode : " + types[el.type].color);
});
演示
var类型={
“TypeA”:{“长度”:“100”,“宽度”:“80”,“颜色”:“#ffffff”},
“TypeB”:{“长度”:“150”,“宽度”:“120”,“颜色”:“#4286f4”},
“类型C”:{“长度”:“150”,“宽度”:“120”,“颜色”:“#4202f4”}
};
var数据=[
{id:“1”,标签:“A1”,类型:“TypeA”},
{id:“2”,标签:“A2”,类型:“TypeA”},
{id:“3”,标签:“B1”,类型:“TypeB”},
{id:“4”,标签:“A3”,类型:“TypeA”},
{id:“5”,标签:“C1”,类型:“TypeC”},
{id:“6”,标签:“B2”,类型:“TypeB”}
];
data.forEach(函数(el){
log(“颜色代码:+types[el.type].color”);

});
这里实际上没有任何JSON..
jsonObject.type
是一个字符串!您希望如何访问其
color
属性?它没有任何。实际上这里没有任何JSON。
jsonObject。type
是一个字符串!你怎么知道