2016-12-04 42 views
2

我使用超級對象作爲JSON解析器。我在處理第三方API時遇到了問題。 API會在元素名稱中返回帶有空格的JSON。但是,超級對象不能使用空格。我觀察到它將空間視爲最終引用的行爲,因此在空間之後忽略任何東西。超級對象 - 元素名稱中的空格

{ "state abbreviation":"KY", "state":"Kentucky" } 

我認爲關鍵是state也是另一種元素的名稱。當我嘗試閱讀state abbreviation時,它將返回值state

我該如何解決這個問題?

回答

2

這MCVE表明超對象與空間中元素的名稱正確工作,我用的是最新版本的source code和Delphi XE7的:

Kentucky 
KY 

program SO40958627; 

{$APPTYPE CONSOLE} 

{$R *.res} 

uses 
    SuperObject, 
    System.SysUtils; 

var 
    obj: ISuperObject; 

begin 
    try 
    obj := SO('{ "state":"Kentucky", "state abbreviation":"KY" }'); 
    Writeln(obj.AsObject.S['state']); 
    Writeln(obj.AsObject.S['state abbreviation']); 
    Readln; 
    except 
    on E: Exception do 
     Writeln(E.ClassName, ': ', E.Message); 
    end; 
end. 

從程序輸出

看來您並未使用最新版本的源代碼,或者您的程序中的其他位置存在缺陷...

相關問題