Member 11425037 Ответов: 1

Найти среднее, максимальное и минимальное значение из массива JSON


Это мой JSON
{
  "samples": [
    {
      "date": "2000-08-10T09:00:00Z",
      "tomato": 10,
      "papaya": 4,
      "pineapple": 4,
      "coconut": 4,
      "apple": 10
    },
    {
      "date": "2014-08-12T09:05:00Z",
      "tomato": 10.5,
      "papaya": 5,
      "coconut": 4,
      "pineapple": 4
    },
    {
      "date": "2000-08-14T09:02:00Z",
      "tomato": 10.8,
      "papaya": 3,
      "pineapple": 4
    },
    {
      "date": "2000-08-16T09:02:00Z",
      "tomato": 11.2,
      "papaya": 6,
      "coconut": 4
    },
    {
      "date": "2000-08-18T08:58:00Z",
      "tomato": 10.9,
      "papaya": 10,
      "coconut": 4,
      "pineapple": 4,
      "apple": 10
    },
    {
      "date": "2000-08-20T09:10:00Z",
      "tomato": 9.3,
      "papaya": 6,
      "pineapple": 4
    },
    {
      "date": "2000-08-22T09:01:00Z",
      "tomato": 9.5,
      "papaya": 10,
      "coconut": 4,
      "pineapple": 4,
      "apple": 10
    }
  ]
}


я пытаюсь отобразить результаты следующим образом

             parameter   LOW AVG MAX
             tomato        x   y   z
             pineaple      x   y   z
             papaya        x   y   z
             apple         x   y   z
             coconut       x   y   z

This is my results, i know its wrong but i need help on how to display the like indicated above.
             papaya=4   apple=10 pineaple=4  tomato=10    coconut=4
             papaya=5,  apple=0  pineaple=4  tomato=10.5  coconut=4
             papaya=3,  apple=0  pineaple=4  tomato=10.8  coconut=0
             papaya=6,  apple=0  pineaple=0  tomato=11.2  coconut=4
             papaya=10, apple=10 pineaple=4  tomato=10.9  coconut=4
             papaya=6,  apple=0  pineaple=4  tomato=9.3   coconut=0
             papaya=10, apple=10 pineaple=4  tomato=9.5   coconut=4


Что я уже пробовал:

private void PrintOverview(байт[] данных)
{
строки jsonStr = кодировка.Кодировке utf8.Метода getString(данные);


ВАР создание экземпляра = создание экземпляра.Синтаксический анализ(jsonStr);

var samples = JsonConvert.DeserializeObject&ЛТ;образец[]&ГТ;(создание экземпляра["образцы"].Метод toString());

var allParams = образцы.Выберите(х =>, новые з {.рН, С. селитра, - ы.фосфат ов.температура, С. хлорид });


foreach (параметр var в allParams)
{

var allValues = samples.Где(x => x.tomato== parameter.tomato|| x.papaya
== parameter.papaya || x.pineapple== parameter.pineapple||
х.параметр яблоко==.яблоко| х.кокосовое ==
параметр.кокосовое)
.Выберите(х =>, новые з {.папайя, С. яблоко, з.ананас, С. помидор,
С. кокосовый орех})
.Список();


Приставка.WriteLine("{0} {1} {2}", параметр, allValues.Min(),allValues.Max());
}

}
образец публичного класса
{
public DateTime date { get; set; }
public double totmato{ get; set; }
public int papaya { get; set; }
public int pineapple { get; set; }
public int coconut { get; set; }
public int apple { get; set; }
}

публичный класс RootObject
{
общественная список<образец&ГТ; образцы { получить; набор; }

}

1 Ответов

Рейтинг:
0

Mohibur Rashid

Во - первых, ваш пример структуры json неверен.
Как проверить
-> скопируйте свой текст json
Хром:
-> хит F12
-> вставьте свой текст json в консоль
Браузер Firefox:
-> хит F12
-> x=(вставьте свой текст json)

Как выдает ошибку.
Вы создали объект JSON как

{
  {
   "sample": [
     {...},
     {...}
   ] 
  }
}

{} рассматривается как объект, и каждый объект должен иметь имя
{
  "Some_Name": {
    "sample":[
      {...},
      {...}
    ]
  }
}

действительно.


Кроме того, я считаю эту структуру JSON плохо спроектированной.
А еще лучше было бы
[
  {
    "date": "Some Date",
    "fruits": [
      {
        "name":"apple", 
        "price": 10
      }, 
      {
        "name": "orange", 
        "price": 20
      }
    ]
  }
]