以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 生成JSON,为什么斜杠会变成双斜杠 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=176045) |
-- 作者:vimin -- 发布时间:2022/3/28 16:53:00 -- 生成JSON,为什么斜杠会变成双斜杠 简单的测试代码: 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" ] } 我是哪里写错了吗,为什么会变成双斜杠,该怎么解决? |
-- 作者:有点蓝 -- 发布时间:2022/3/28 17:26:00 -- 使用上会有做什么问题?变成双斜杠是正常的,解析的时候会自动转换为1个斜杆的。如果没有自动转换,自己替换为1个斜杆也可以呀 |
-- 作者:vimin -- 发布时间:2022/3/28 17:50:00 -- 就是解析的时候没有自动转换为1个斜杠,返回了500的错误 |
-- 作者:vimin -- 发布时间:2022/3/28 17:51:00 -- 这个就只能在前端处理一下,把双斜杠替换成单斜杠?有在后端解决这个问题的办法吗 |
-- 作者:lgzhao -- 发布时间: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 -- 发布时间:2022/3/28 18:24:00 -- 谢谢。 因为我这个有可能是多张图片,所以我是用数组来保存的。 想让前端显示多张图片
|
-- 作者:有点蓝 -- 发布时间: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 -- 发布时间:2022/3/28 21:03:00 -- 谢谢老师! 不好意思,原来是我自己前端代码写错了。 解析没问题的
|