Цикл для анализа данных JSON - PullRequest
0 голосов
/ 10 июля 2011

Описание и цель: По сути, данные постоянно генерируются каждые 2 минуты в данные JSON. Что мне нужно сделать, это получить информацию из предоставленных данных JSON. Данные будут постоянно меняться. После того, как информация проанализирована, ее необходимо собрать в переменные, которые можно использовать в других функциях.

Я застрял в попытке выяснить, как создать функцию с циклом, который переназначает все данные сохраненным переменным, которые впоследствии могут быть использованы в функциях.

Пример информации:

var json = {"data":
{"shop":[
{
"carID":"7",
"Garage":"7",
"Mechanic":"Michael Jamison",
"notificationsType":"repair",
"notificationsDesc":"Blown Head gasket and two rail mounts",
"notificationsDate":07/22/2011,
"notificationsTime":"00:02:18"
},

{
"CarID":"8",
"Garage":"7",
"Mechanic":"Tom Bennett",
"notificationsType":"event",
"notifications":"blown engine, 2 tires, and safety inspection",
"notificationsDate":"16 April 2008",
"notificationsTime":"08:26:24"
}
]
}};

function GetInformationToReassign(){
var i;
for(i=0; i<json.data.shop.length; i++)
{
 //Then the data is looped, stored into multi-dimensional arrays that can be indexed.
}

}

Таким образом, конечный результат должен быть таким:

shop[0]={7,7,"Michael Jamison",repair,"Blown Head gasket and two rail mounts", 07/22/2011,00:02:18  }

магазин [1] = {}

Ответы [ 3 ]

1 голос
/ 10 июля 2011

Вы можете перебрать вашу строку JSON, используя следующий код,

      var JSONstring=[{"key1":"value1","key2":"value2"},{"key3":"value3"}];

        for(var i=0;i<JSONstring.length;i++){
        var obj = JSONstring[i];
          for(var key in obj){
                 var attrName = key;
                 var attrValue = obj[key];

                //based on the result create as you need
            }
         }

Надеюсь, это поможет ...

0 голосов
/ 10 июля 2011

Мне кажется, что вы хотите извлечь данные в свойстве "shop" объекта JSON, чтобы вы могли легко ссылаться на все элементы магазина. Вот пример:

var json =
  {
    "data":
      {"shop":
        [
          {"itemName":"car", "price":30000},
          {"itemName":"wheel", "price":500}
        ]
      }
  },
  inventory = [];

// Map the shop's inventory to our inventory array.
for (var i = 0, j = json.data.shop.length; i < j; i += 1) {
  inventory[i] = json.data.shop[i];
}

// Example of using our inventory array
console.log( inventory[0].itemName + " has a price of $" + inventory[0].price);
0 голосов
/ 10 июля 2011

Ну, ваш пример вывода невозможен. У вас есть то, что является списком вещей, но вы используете объектный синтаксис.

Что будет иметь смысл, если вы действительно хотите, чтобы эти элементы в виде списка вместо пар ключ-значение были бы такими:

shop[0]=[7,7,"Michael Jamison",repair,"Blown Head gasket and two rail mounts", 07/22/2011,00:02:18]

Для просмотра свойств объекта вы можете использовать что-то вроде этого:

var properties = Array();
for (var propertyName in theObject) {
  // Check if it’s NOT a function
  if (!(theObject[propertyName] instanceof Function)) {
    properties.push(propertyName);
  }
}

Честно говоря, я не совсем уверен, почему вы хотите поместить его в другой формат. Данные json уже настолько хороши, насколько это возможно, вы можете сделать shop [0] ["carID"], чтобы получить данные в этом поле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...