Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.06.2018, 10:44   #1
PTyTb32
Форумчанин
 
Регистрация: 06.10.2013
Сообщений: 216
Вопрос JSON

Привет, кто может понятно объяснить как работать с JSON строками?
уже и гуглил и примером куча и даже видео на ютубе так и не дало понять как с этим работать вот пример строки которую мне нужно спарсить и то как я ее вижу
Код:
{
	"BTC_AMP": {                                            -1 объект в основном объекте
		"asks": [                                           - 1-я пара первого объекта
			["0.00002357", 4.5281862]         -??массив в массиве 1-й пары 1-го объекта?? -1 элемент массива- нужная инфа
		],
		"bids": [                                            - 2-я пара первого объекта
			["0.00002348", 410.67020168]  -??массив в массиве 2-й пары 1-го объекта?? 
		],
		"isFrozen": "0",                                  - 3-я пара первого объекта
		"seq": 53570301                                - 4-я пара первого объекта
	},
	"BTC_ARDR": {                                           -2 объект в основном объекте
		"asks": [
			["0.00003348", 0.02927121]
		],
		"bids": [
			["0.00003320", 965.98385787]
		],
		"isFrozen": "0",
		"seq": 41056599
	}
}
и как их получать тоже не сильно понимаю
пока есть такое и оно не работает
Код:
procedure TForm1.encodeTicets(text: string);
var
  i: integer;
  JSONArray: TJSONArray;
  JSONObject: TJSONObject;
  JSONObject2: TJSONObject;
  j: integer;
begin
  JSONObject := TJSONObject.ParseJSONValue(text) as TJSONObject;
  if Assigned(JSONObject) then
    for i := 0 to JSONObject.Count - 1 do
    begin
    JSONObject2:=JSONObject.GetValue('BTC_'+ListBox1.Items.KeyNames[i]) as TJSONObject;//ListBox1.Items.KeyNames[i] ="AMP" 
    if Assigned(JSONObject2) then
    ListBox2.Items.Add(JSONObject2.Pairs[i].JsonString.Value);
    end;
end;

путем проб и ошибок, получилось вот так:
Код:
procedure TForm1.encodeTicets(text: string);
var
  i: integer;
  JSONArray: TJSONArray;
  JSONArray2: TJSONArray;
  JSONObject: TJSONObject;
  JSONObject2: TJSONObject;
  js: TJSONString;
  j: integer;
begin
  JSONObject := TJSONObject.ParseJSONValue(text) as TJSONObject;
  if Assigned(JSONObject) then
    for i := 0 to JSONObject.Count - 1 do
    begin
      JSONObject2 := JSONObject.GetValue('BTC_' + ListBox1.items.KeyNames[i])
        as TJSONObject;
      if Assigned(JSONObject2) then
      begin
        JSONArray := JSONObject2.GetValue('bids')as TJSONArray;
        if Assigned(JSONArray) then
        begin
          JSONArray2 := JSONArray.items[0]  as TJSONArray;
         if Assigned(JSONArray2) then
        begin
          js := JSONArray2.items[0] as TJSONString;
          ListBox2.items.Add(js.Value);
        end;
        end;
      end
    else  ListBox2.items.Add('не торгуется');
    end;

end;

Последний раз редактировалось PTyTb32; 02.06.2018 в 18:02. Причина: Нашел решение
PTyTb32 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с JSON (System.JSON) nibufep Общие вопросы Delphi 3 19.04.2016 18:21
JSON Exception [org.apache.json] spectrum988 Помощь студентам 3 11.12.2015 09:25
JSON MORPEH Общие вопросы Delphi 2 06.12.2015 12:28
C++ JSON qip2005 Visual C++ 2 05.11.2012 19:48
Qt + Json Lindemann66 Qt и кроссплатформенное программирование С/С++ 0 18.08.2011 15:26