加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Delphi DataSnap框架向JSON消息添加内容

发布时间:2020-12-15 04:10:48 所属栏目:大数据 来源:网络整理
导读:我正在使用Delphi XE DataSnap REST服务器并尝试返回 JSON序列化对象.我的方法返回到客户端的结果如下所示: {"type":"ServerMethodsUnit1.TJSONIssue","id":1,"fields":{ "FIssueNo":90210,"FTitle":"Beverly Hills...that''s where I want to be","FKind":
我正在使用Delphi XE DataSnap REST服务器并尝试返回 JSON序列化对象.我的方法返回到客户端的结果如下所示:
{"type":"ServerMethodsUnit1.TJSONIssue","id":1,"fields":{
           "FIssueNo":90210,"FTitle":"Beverly Hills...that''s where I want to be","FKind":"Wishlist"
          }
}

格式良好的JSON.

问题是,当客户端收到消息时,会添加一些东西,它看起来像这样:

{"result": ["{"type":"ServerMethodsUnit1.TJSONIssue","id":1,"fields":{
                          "FIssueNo":90210,"FTitle":"Beverly Hills...that's where I want to be","FKind":"Wishlist"}
             }
            "
           ]
}

我得到了一堆反斜杠字符和前面的“结果”标签.

我想知道是否有人知道为什么我会得到这些额外的东西以及如何摆脱它.

解决方法

您发布的JSON会显示返回字符串而不是JSONObject的远程方法的结果.
返回JSONObject的正确方法应该是以下(未编译/测试):
function TMyRemote.GetSomething: TJSONValue;
begin
  Result := TJSONObject.Create;
  Result.Add("Name","Daniele Teti"); //used the overloaded version of add (string,string)
end;

现在json应该是正确的.结果字符串中的RESULT元素是按设计的.您可以读取结果数组的第一个元素并获取原始JSONObject.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读