我有这个代码工作到今天.如果有这样的例子:
"状态":空
将出现"无效的类类型"异常.怎么解决?感谢帮助.
procedure TForm1.Button10Click(Sender: TObject); var IdHTTP: TIdHTTP; IdSSL: TIdSSLIOHandlerSocketOpenSSL; JSON: string; jsonObiekt: TJSONObject; streams: TJSONArray; stream: TJSONObject; channel: TJSONObject; status: TJSONString; liczbaStrumieni: integer; i: integer; begin IdHTTP := TIdHTTP.Create; try IdSSL := TIdSSLIOHandlerSocketOpenSSL.Create(IdHTTP); IdHTTP.IOHandler := IdSSL; IdHTTP.Request.Accept := 'application/vnd.twitchtv.v3+json'; IdHTTP.Request.CustomHeaders.AddValue('Client-ID', 'smb61nyd0vxmqdn9d3k735qbx41cdyg'); JSON := IdHTTP.Get('https://api.twitch.tv/kraken/streams?game=StarCraft:%20Brood%20War'); finally IdHTTP.Free; end; jsonObiekt := TJSONObject.ParseJSONValue(JSON) as TJSONObject; try streams := jsonObiekt.Get('streams').JsonValue as TJSONArray; liczbaStrumieni := streams.Size; for i := 0 to liczbaStrumieni - 1 do begin stream := streams.Get(i) as TJSONObject; channel := stream.Get('channel').JsonValue as TJSONObject; status := channel.Get('status').JsonValue as TJSONString; Memo6.Lines.Add(status.Value); end; finally jsonObiekt.Free; end; end;
Mason Wheele.. 5
我从评论中看到您熟悉JSON.org上的JSON规范.您的问题似乎是了解它如何映射到DBXJSON模型.
具体而言,TJSONObject
表示由JSON标准定义的Object. 它不是指"一个(德尔福)对象持有JSON数据." 那是什么TJSONValue
.尝试使用它.
我从评论中看到您熟悉JSON.org上的JSON规范.您的问题似乎是了解它如何映射到DBXJSON模型.
具体而言,TJSONObject
表示由JSON标准定义的Object. 它不是指"一个(德尔福)对象持有JSON数据." 那是什么TJSONValue
.尝试使用它.