Foxtable(狐表)用户栏目专家坐堂 → 生成JSON,为什么斜杠会变成双斜杠


  共有3834人关注过本帖树形打印复制链接

主题:生成JSON,为什么斜杠会变成双斜杠

帅哥哟,离线,有人找我吗?
vimin
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:158 积分:1542 威望:0 精华:0 注册:2018/4/11 21:01:00
生成JSON,为什么斜杠会变成双斜杠  发帖心情 Post By:2022/3/28 16:53:00 [只看该作者]

简单的测试代码:
Dim jo As new JObject
Dim ja As new JArray
Dim wjm As String = "c:\web\images\upload"
ja.Add(wjm)
jo("list") = ja
Output.Show(jo.ToString)
输出的为什么是:
{
  "list": [
    "c:\\web\\images\\upload"
  ]
}

我是哪里写错了吗,为什么会变成双斜杠,该怎么解决?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107739 积分:548028 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/28 17:26:00 [只看该作者]

使用上会有做什么问题?变成双斜杠是正常的,解析的时候会自动转换为1个斜杆的。如果没有自动转换,自己替换为1个斜杆也可以呀

 回到顶部
帅哥哟,离线,有人找我吗?
vimin
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:158 积分:1542 威望:0 精华:0 注册:2018/4/11 21:01:00
  发帖心情 Post By:2022/3/28 17:50:00 [只看该作者]

就是解析的时候没有自动转换为1个斜杠,返回了500的错误

 回到顶部
帅哥哟,离线,有人找我吗?
vimin
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:158 积分:1542 威望:0 精华:0 注册:2018/4/11 21:01:00
  发帖心情 Post By:2022/3/28 17:51:00 [只看该作者]

这个就只能在前端处理一下,把双斜杠替换成单斜杠?有在后端解决这个问题的办法吗

 回到顶部
帅哥哟,离线,有人找我吗?
lgzhao
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:302 积分:2069 威望:0 精华:0 注册:2017/11/19 9:46:00
  发帖心情 Post By:2022/3/28 18:19:00 [只看该作者]

我测试了一下。同样用狐表来生成和解析。

当wjm按jarray时,解析之后,没有返回正确的格式。
当wjm直接按字符串赋给jo(list)时,解析后恢复成正确的了。

结论:foxtable jarray的解析和生成存在匹配问题。
foxtable是不是该升级newton的版本了?
=================
‘ 附:按下面方法放弃jarray,则可以正确解析。
Dim jo As new JObject
Dim ja As new JArray
Dim wjm As String = "c:\web\images\upload"
 
jo("list") = wjm
Output.Show(jo.ToString)


Dim json As String = jo.ToString
Dim jo1 As JObject = JObject.Parse(json)
Output.Show(jo1("list").Tostring)

[此贴子已经被作者于2022/3/28 18:22:24编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
vimin
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:158 积分:1542 威望:0 精华:0 注册:2018/4/11 21:01:00
  发帖心情 Post By:2022/3/28 18:24:00 [只看该作者]

谢谢。
因为我这个有可能是多张图片,所以我是用数组来保存的。
想让前端显示多张图片

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107739 积分:548028 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/28 20:09:00 [只看该作者]

Foxtable的json解析没有任何问题,newton的版本也没有任何问题。

您觉得有问题是因为解析的方法不正确
Dim jo As new JObject
Dim ja As new JArray
Dim wjm As String = "c:\web\images\upload"
ja.Add(wjm)
jo("list") = ja
Output.Show(jo.ToString)

Dim json As String = jo.ToString
Dim jo1 As JObject = JObject.Parse(json)

//注意下面2个输出的区别,第一个输出的仍然是json格式字符串,第二个才是输出的内容
Output.Show(jo1("list").Tostring)
Output.Show(jo1("list")(0).Tostring)


 回到顶部
帅哥哟,离线,有人找我吗?
vimin
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:158 积分:1542 威望:0 精华:0 注册:2018/4/11 21:01:00
  发帖心情 Post By:2022/3/28 21:03:00 [只看该作者]

谢谢老师!
不好意思,原来是我自己前端代码写错了。
解析没问题的

 回到顶部