【问题标题】:Parsing JSON Boolean value in Inno Setup?在 Inno Setup 中解析 JSON 布尔值?
【发布时间】:2021-11-30 08:22:24
【问题描述】:

我需要在 Inno Setup 中解析 JSON 布尔值。我尝试修改 How to parse a JSON string in Inno Setup? 中的代码以解析布尔值,如下所示:

function FindJsonBoolean(
  Output: TJsonParserOutput; Parent: TJsonObject; Key: TJsonString;
  var Bool: TJsonBool): Boolean;
var
  JsonValue: TJsonValue;
begin
  Result :=
    FindJsonValue(Output, Parent, Key, JsonValue) and
    (JsonValue.Kind = JVKBoolean);
  if Result then
    begin    
      Bool := Output.Boolean[JsonValue.Index]; 
    end;
end;

但是编译失败:

未知类型'TJsonBool'

【问题讨论】:

    标签: json inno-setup pascalscript


    【解决方案1】:

    JsonParser library 中没有 TJsonBool。有:

    TJsonWord = (JWUnknown, JWTrue, JWFalse, JWNull);
    

    使用类似的东西并将TheWordJWTrue/JWFalse进行比较。

    function FindJsonWord(
      Output: TJsonParserOutput; Parent: TJsonObject; Key: TJsonString;
      var TheWord: TJsonWord): Boolean;
    var
      JsonValue: TJsonValue;
    begin
      Result :=
        FindJsonValue(Output, Parent, Key, JsonValue) and
        (JsonValue.Kind = JVKWord);
    
      if Result then
      begin    
        TheWord := Output.Words[JsonValue.Index]; 
      end;
    end;
    

    【讨论】:

      猜你喜欢
      • 2023-03-09
      • 2014-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      • 2017-01-20
      相关资源
      最近更新 更多