如何获取内部 JSON 的名称

How to get the names of the inner JSON

我正在从记录器上的数据库中获取一些信息,将其转换为 JSON 符号。

但是现在,我不知道如何只阅读我的专栏名称。

看这个例子:

http://www.jsoneditoronline.org/?id=1bccb6d9522392f4763d58e24ff4a8e6

我需要阅读 GND_AREA、DCR_AREA 个名字。

编辑:

有些人在下面给出了一些可行的答案,但我认为我没有正确解释我想要的内容。

我的对象有一个名为 "List" 的键,因此 JSON 具有以下结构:

我想检索字符串名称。不是价值观....

示例:我想要下面的那些字符串,因为这些字符串是我的列名,它们可以根据 table 我搜索我的数据而改变。

GND_AREA、DCR_AREA、DCR_EQUIP 等等.....

P.S:java这里的脚本真的很新

编辑结束


我尝试了我在这里找到的所有可能性,但我不知道我的 JSON 符号是否正确....

我试图用 java 脚本来做到这一点。

我最后试的是这个:

Object.keys(obj).forEach(function (key) {
               console.log (obj[key].name)
            });

这是我的字符串:

{
  "List": [
    {
      "GND_AREA": "Redução",
      "DCR_AREA": "Alto Forno 1",
      "DCR_EQUIP": "AF1-Conjunto de Sopro 01 a 28",
      "DCR_TECNCA": "Monitoramento",
      "DCR_DCPLNA": "Temperatura",
      "COD_POSIC": "61019",
      "DCR_POSIC": "OB-F1-RE-ANVE-CJSO-01A05",
      "DCR_POSFUN": "Conjunto de Sopro 01-05 do Anel de Vento do Alto Forno 1",
      "DCR_PNTINS": "Algaraviz 1",
      "DAT_INSP": "23/2/2016 21:28:48",
      "VLR_DP_DESVIO": "",
      "VLR_LTURA": "450",
      "VLR_DMA_DESVIO": "350",
      "COD_UNDMED": "°C "
    },
    {
      "GND_AREA": "Redução",
      "DCR_AREA": "Alto Forno 1",
      "DCR_EQUIP": "AF1-Conjunto de Sopro 01 a 28",
      "DCR_TECNCA": "Monitoramento",
      "DCR_DCPLNA": "Temperatura",
      "COD_POSIC": "61019",
      "DCR_POSIC": "OB-F1-RE-ANVE-CJSO-01A05",
      "DCR_POSFUN": "Conjunto de Sopro 01-05 do Anel de Vento do Alto Forno 1",
      "DCR_PNTINS": "Algaraviz 1",
      "DAT_INSP": "24/2/2016 21:37:49",
      "VLR_DP_DESVIO": "",
      "VLR_LTURA": "140",
      "VLR_DMA_DESVIO": "350",
      "COD_UNDMED": "°C "
    }
  ]
}

试试这个: Working Example

var t = setToYourString;

t.List.forEach(function(el){
  console.log(el.GND_AREA, el.DCR_AREA);
});

您想要对象的属性而不是值:

t.List.forEach(function(el){
  var obj = el;
  for (var prop in el) {
    console.log(prop);
  }
});

https://jsbin.com/qudeda/6/edit?js,console

在您的代码中,name 不在该对象上,您尝试读取对象属性的方式需要一个名为 name 的键,但它不需要。但是它确实有 List

假设您将字符串存储在变量 jsonString 中。然后,您可以解析它并读取所需的属性(这里我将信息存储在两个数组中)。

var jsonString = JSON.parse('{"List": [{"GND_AREA": "Redução","DCR_AREA": "Alto Forno 1"},{"GND_AREA": "Aumento","DCR_AREA": "Alto Forno 2"}]}');

var gndAreas = [];
var dcrAreas = [];

for(var i = 0; i < jsonString.List.length; i++){

   gndAreas.push(jsonString.List[i].GND_AREA);
   dcrAreas .push(jsonString.List[i].DCR_AREA);

}

这可能有助于解释。将这些函数放在您的代码中并调用 init() 它将在控制台中显示您的 JSON 的属性。

function display(obj, lvl) {
    var tab = Array(lvl + 1).join("\t");
    for (var property in obj) {
        var type = typeof obj[property];
        if (obj.hasOwnProperty(property)) {
            console.log(tab+"'"+property + "' of type "+type+" and value: "+obj[property]);
        }
        if (type == 'object') {
            console.log(tab+"which has the following properties:");
            display(obj[property], lvl + 1);
        }
    }
}
function init() {
    var json = '{"List":[{"GND_AREA": "Redução","DCR_AREA": "Alto Forno 1","DCR_EQUIP": "AF1-Conjunto de Sopro 01 a 28","DCR_TECNCA": "Monitoramento","DCR_DCPLNA": "Temperatura","COD_POSIC": "61019","DCR_POSIC": "OB-F1-RE-ANVE-CJSO-01A05","DCR_POSFUN": "Conjunto de Sopro 01-05 do Anel de Vento do Alto Forno 1","DCR_PNTINS": "Algaraviz 1","DAT_INSP": "23/2/2016 21:28:48","VLR_DP_DESVIO": "","VLR_LTURA": "450","VLR_DMA_DESVIO": "350","COD_UNDMED": "°C "},{"GND_AREA": "Redução","DCR_AREA": "Alto Forno 1","DCR_EQUIP": "AF1-Conjunto de Sopro 01 a 28","DCR_TECNCA": "Monitoramento","DCR_DCPLNA": "Temperatura","COD_POSIC": "61019","DCR_POSIC": "OB-F1-RE-ANVE-CJSO-01A05","DCR_POSFUN": "Conjunto de Sopro 01-05 do Anel de Vento do Alto Forno 1","DCR_PNTINS": "Algaraviz 1","DAT_INSP": "24/2/2016 21:37:49","VLR_DP_DESVIO": "","VLR_LTURA": "140","VLR_DMA_DESVIO": "350","COD_UNDMED": "°C "}]}';
    var obj = JSON.parse(json);
    console.log("My JSON has properties named:");
    display(obj, 1);
}

P.S。 obj.propertyobj['property']

的语法糖

感谢@JordanHendrix 和@Tibrogargan!

两种方法都奏效了!我只是稍微修改了一下。

@JordanHendrix 提供的方法:

var obj = t.List[0];
for (var prop in obj) {
  console.log(prop);
}

https://jsbin.com/gufubevozo/edit?js,console

@Tibrogargan提供的方法:

function display(obj2, lvl) {
var tab = Array(lvl + 1).join("\t");

var obj = obj2.List[0];

var i = 0;
var loop = 0;

for (var property in obj) {
    var type = typeof obj[property];

    if (obj.hasOwnProperty(property)) {
        console.log(property);                        
    } 
}

}

https://jsbin.com/qomunayiko/edit?js,console

我标记了 Tibrogargan 的回答,因为它更完整。