|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
JSON "out of memory" при попытке добавить вторую пару
Delphi XE4, библиотека Data.DBXJSON, собственно код:
Код:
procedure TForm1.FormDblClick(Sender: TObject); var i: Word; jsonDB, jBuf: TJSONObject; arrBuf: TJSONArray; buf: TStringList; begin arrBuf:= TJSONArray.Create; for i:= 0 to grdParts.RowCount -1 do begin jBuf:= TJSONObject.Create; jBuf.AddPair('name', grdParts.Cells[0,i]); //grdParts: TStringGrid jBuf.AddPair('size', grdParts.Cells[1,i]); arrBuf.AddElement(jBuf); end; jsonDB.Create(TJSONPair.Create('parts', arrBuf)); buf:= TStringList.Create; buf.Text:= jsonDB.ToString; jsonDB.Free; buf.SaveToFile('DB_save.json'); buf.Free; end; Самое странное что аналогичный код в пробном проекте работает нормально: Код:
procedure TForm1.FormDblClick(Sender: TObject); var i, j: Integer; buf: TJSONObject; arrBuf: TJSONArray; s: string; begin arrBuf:= TJSONArray.Create; MyJSON:= TJSONObject.Create; //глобально for i := 0 to StringGrid1.RowCount - 1 do begin buf:= TJSONObject.Create; for j := 1 to StringGrid1.ColCount - 1 do begin buf.AddPair('opt'+IntToStr(j),TJSONNumber.Create(StringGrid1.Cells[j,i])); end; arrBuf.AddElement(TJSONObject.Create(TJSONPair.Create(StringGrid1.Cells[0,i],buf))); end; MyJSON.AddPair('Фигня',arrBuf); MyList.Text:= MyJSON.ToString; MyJSON.Free; MyList.SaveToFile('000.json'); {} end; |