解析和转换 JSON
Parsing and converting JSON
我对 TJSONObject.ParseJSONValue
或 TJSONObject.toString
有疑问
以下代码不会在 Memo2 中显示 Memo1 中的 JSON,只有一个空的“{}”:
A:=tJSONObject.Create;
A.ParseJSONValue(Memo1.Lines.Text);
Memo2.Lines.Text:=A.ToString;
有什么问题吗?
ParseJSONValue
是一个函数,所以它需要
A:=A.ParseJSONValue...
多么愚蠢....
ParseJSONValue()
是 TJSONObject
的 class
函数。它不会 修改 它被调用的 TJSONObject
,正如您所期望的那样。它 returns 一个新的 TJSONValue
,它将指向一个 TJSONObject
如果 JSON 数据代表一个 JSON目的。您忽略了 return 值(因此泄漏了它,因为您需要调用 Free
来完成使用)。
您需要将代码更改为更像这样的内容:
var A: TJSONValue;
A := TJSONObject.ParseJSONValue(Memo1.Text);
if A <> nil then
try
Memo2.Text := A.ToString;
finally
A.Free;
end;
我对 TJSONObject.ParseJSONValue
或 TJSONObject.toString
以下代码不会在 Memo2 中显示 Memo1 中的 JSON,只有一个空的“{}”:
A:=tJSONObject.Create;
A.ParseJSONValue(Memo1.Lines.Text);
Memo2.Lines.Text:=A.ToString;
有什么问题吗?
ParseJSONValue
是一个函数,所以它需要
A:=A.ParseJSONValue...
多么愚蠢....
ParseJSONValue()
是 TJSONObject
的 class
函数。它不会 修改 它被调用的 TJSONObject
,正如您所期望的那样。它 returns 一个新的 TJSONValue
,它将指向一个 TJSONObject
如果 JSON 数据代表一个 JSON目的。您忽略了 return 值(因此泄漏了它,因为您需要调用 Free
来完成使用)。
您需要将代码更改为更像这样的内容:
var A: TJSONValue;
A := TJSONObject.ParseJSONValue(Memo1.Text);
if A <> nil then
try
Memo2.Text := A.ToString;
finally
A.Free;
end;