我已經閱讀了一些在互聯網上的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對象 –