我已经阅读了一些在互联网上的JSON工作。作为一个noob,期待我不要跟你们中的一些人一样善于追查例子,因为我需要知识来知道要寻找什么来获取知识。 Catch22。 ;-)简单的JSON工作:提取密钥和值
我使用superobject,似乎是最好的方式。
我的问题是,我需要将JSON分离为键/值对,到目前为止,只有我知道密钥是什么,才能获得价值。 将对所有可能的命令检查密钥(在我的应用中密钥是[命令]),并且当命令匹配时,值部分是逗号分隔的参数列表,作为将由侧。服务器/客户端然后调用该命令(一个过程/函数)并传递[commaText]作为其参数。 (可能有JSON在政治上正确的方式取代[commaText],当然你可以对此发表评论,但到目前为止,[commaText]对我来说是一个简单而容易的方式。
更短:我需要从一个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其他键/值作为JSON数据的单独字符串(通常/基本上,我将拥有多个密钥对,其一个命令/一个传输)
更多背景:我有一个SQLDatabase/App-Server /许多客户实施。 (应用程序服务器I/O < - > SQL,计算并输出到客户端,客户端接收来自应用程序服务器的输入/函数调用,更新其值,然后用户可以调用应用程序服务器上的函数使用客户端调用该函数 - 使用websockets进行通信 应用程序服务器和客户端都可以调用api中的函数和过程,但它将成为客户端服务器或服务器客户端的一个命令。
如果它可能不是更容易地创建一个特殊的情况下JSON解析器,因为我的数据常是只有一对,而不是一个大的JSON对象我想知道......
请,有什么建议可以理解的
PS。德尔福10.1柏林,Windows10 64
该库的示例向您展示如何使用 –
什么库@DavidHeffernan? http://docwiki.embarcadero.com/RADStudio/Seattle/en/JSON只构建键/值对,但不提取它们。 – chillum
您正在使用超级对象。阅读其文档。并且FWIW您提到的Emba库确实支持枚举JSON对象 –