Я прочитал немного работы JSON по всему Интернету. как noob, ожидайте, что я не буду так хорош, как некоторые из вас при поиске примеров, потому что мне нужны знания, чтобы знать, что искать, чтобы получить знания. Словить 22. ;-)простая работа JSON: извлечение как ключа, так и значения
Я использую superobject, кажется, лучший способ пойти.
Мой вопрос: мне нужно разделить JSON на пары ключ/значение, до сих пор я мог получить только значение, если знаю, что это за ключ. Ключ (в моем приложении ключ [команда]) будет проверен на все возможные команды, а когда команда будет соответствовать, часть значения представляет собой список параметров, разделенных запятыми, в качестве аргументов для команды, которая будет инициирована боковая сторона. Затем сервер/клиент вызывает команду (процедуру/функцию) и передает [commaText] в качестве своих аргументов. (может быть, JSON политически корректный способ, который заменяет [commaText], и, конечно же, вы можете прокомментировать это, но до сих пор [commaText] является простым и легким способом для меня сделать это.
: Мне нужно извлечь как [значения ключа] и [значение Value] из пары JSON
это то, что я работаю до сих пор:.
function TWebSocketServer.GetValue(const AData: String;
Key: String): String;
var
JSON: ISuperObject;
rowItem: ISuperObject;
ADataStringStream: TStringStream;
begin
ADataStringStream := TStringStream.Create(AData);
JSON := TSuperObject.ParseStream(ADataStringStream, False);
rowItem := JSON[Key];
if Assigned(rowItem) then
Result := rowItem.AsString
else Result := '';
end;
это заставляет меня значение пары если я уже знаю, что такое ключ пары.
Реставрация: необходимо извлечь b oth key/value как отдельные строки из данных JSON (обычно/в основном, у меня есть в наличии более одной пары ключей, одна команда/одна передача)
Больше фона: у меня есть SQLDatabase/App-Server/Выполнение многих клиентов. (App-Server I/O < -> SQL, вычисляет, а затем выводит на клиентов, клиенты получают вызов ввода/функции с приложения-сервера, обновляют его значения, а затем пользователь может вызывать функцию на App-сервере через с помощью клиента для вызова этой функции - с использованием веб-интерфейсов для связи. Оба приложения-сервера и клиенты могут вызывать функции и процедуры в api, но это будет одна команда за раз от клиент-сервера или сервера-клиента.
и я подумал, что это не может быть проще создать специальный случай JSON парсер, потому что мои данные только одна во все дни пара, а не большой объект JSON ...
Пожалуйста, любые предложения будут оценены
PS. Delphi 10,1 Berlin, Windows 10 x64
Примеры для библиотеки показывают вам, как –
какая библиотека @DavidHeffernan? http://docwiki.embarcadero.com/RADStudio/Seattle/en/JSON только строит пары ключ/значение, он их не извлекает. – chillum
Вы используете суперобъект. Прочтите его документацию. И FWIW, которую вы упомянули в библиотеке Emba, поддерживает перечисление объекта JSON –