首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为url请求发送json时的额外斜杠

为url请求发送json时的额外斜杠
EN

Stack Overflow用户
提问于 2017-05-21 15:25:10
回答 1查看 1.7K关注 0票数 1

我想为url请求发送json格式的数据。我的代码如下所示,以num作为输入;

代码语言:javascript
复制
#* @get /getComm
getComm <- function(num=1){
library(jsonlite) 
#some computation here
lst<-list(links=linksff,nodes=sc,directed=FALSE,multigraph=FALSE)
return(toJSON(lst))
}

我使用plumber库将我的代码作为API。lst列表如下所示,用于num=1;

代码语言:javascript
复制
$links
  source target
1      0      3
2      2      5
3      1      4

$nodes
  size score  id   type
1   10    10   7 circle
2   10    10 179 circle
3   10    10 128 circle
4   10    10 191 circle
5   10    10 239 circle
6   10    10 218 circle

$directed
[1] FALSE

$multigraph
[1] FALSE

当我通过json将其转换为toJSON(lst)时,json格式是正确的:

{“链接”:{“源”:0,“目标”:3},{“源”:2,“目标”:5},{“源”:1,“目标”:4},“节点”:{“大小”:10,“分数”:10,“类型”:“圆形”},{“大小”:10,“分数”:10,"id":179,“类型”:“圆形”},{“大小”:10,“得分”:10,"id":128,“类型”:“圆形”},{“大小”:10,“分数”:10,"id":191,“类型”:“圆形”},{“大小”:10,“分数”:10,"id":239,“类型”:“圆形”},{“大小”:10,“分数”:10,"id":218,“类型”:“圆”},“定向”:“false”:false,“多重图”:false}

但是,当我发送url请求获取json时,浏览器无法正确诊断json格式,并且我知道的是额外的slashe_which意味着R中的空间,对于url请求http://127.0.0.1:8000/getComm?num=1的响应如下;

[“{\”链接“:{\”源\“:0,\”目标\“:3},{\”源\“:2,\”目标\“:5},{\”源\“:1,\”目标\“:4},\”节点\“:{\”大小\“:10,\”得分“:10,\"id\":7,\”类型\“:\”圆形“},{\”大小\“:10,\“得分”:10,\"id\":179,\“类型\”:\“圆形”},{\“大小\”:10,\“分数”:10,\"id\":128,\“类型\”:\“圆形”},{\“大小\”:10,\“分数\”:10,\“id\”类型:191,\“类型\”:\“圆形”},{\“大小”:10,\“得分”:10,\"id\":239,\“类型\”:\“圆形”},{\“大小\”:10,\“分数”:10,\"id\":218,\“类型\”:\“圆”},\“有向的\”:false,\“多重图”:假}]

这些斜线是从哪里来的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-21 23:57:29

水管工将每个端点与一个“序列化程序”关联起来--这个概念目前还没有得到很好的记录--默认的序列化程序是JSON。

@effel是正确的,反斜杠正在转义引号。您在响应中看到的是包含toJSON结果的单个字符串。实际上,您已经对对象进行了双重编码--首先使用您自己的toJSON调用获得一个字符串,然后水管工会将该字符串编码为JSON,从而产生反斜杠。

我怀疑您实际上只是想返回对象,而不是JSON序列化,您将得到正确的答案。

代码语言:javascript
复制
#* @get /getComm
getComm <- function(num=1){
  #some computation here
  lst<-list(links=linksff,nodes=sc,directed=FALSE,multigraph=FALSE)
  return(lst)
}

如果您确实出于任何原因需要自己进行自定义JSON序列化,请参阅这个关于如何告诉水管工不要序列化输出的答案。https://stackoverflow.com/a/44092595/1133019

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44098554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档