【发布时间】:2011-09-09 00:08:20
【问题描述】:
我正在尝试将现有的 .Net 商店网站转换为 Android 应用程序。
(这是在VB中)
其中一个主要对象保存产品数据。
在该对象中,例如:
<H2>Product Title</H2>
<P>A description</P>
我已经构建了一个 WCF Rest 服务,它返回我期望的数据:...
话虽如此,我已经试用了 Newtonsoft.Json 和 DataContractJsonSerializer,它们产生相同但不同的输出。
当使用 Newtonsoft.Json 在调试中运行 WCF 服务时,它会按照我的预期返回这些项目:
牛顿软件:
<H2>Product Title<\/H2><P>A description<\/P>
DataContractJsonSerializer:
<H2>Product Title<\\\/H2><P>A description<\\\/P>
但是,当我通过 Eclipse 运行 Android 应用程序时,我收到“无效的转义序列(有效的转义序列是 \b \t \n \f \r \" \' \ )”的错误
所以,简而言之;如何阻止 Newtonsoft 或 DataContractJsonSerializer 插入这些转义序列?
谢谢 戴夫
更新:
我已经追踪到 WCF 正在做的事情(?)。这是我返回 JSON 字符串的代码的最后一点:
retVal = CacheManager.JSONFullProduct("P" & ProductID)
此时,'retVal' 正在存储关闭 HTML 标记,仅包含 '/'
retVal = retVal.Replace("\/", "/")
此时,'retVal' 仍在存储关闭 HTML 标记,仅包含 '/'
Return retVal
此时,'retVal' 本身仍然只使用'/' 存储关闭 HTML 标记,但是当它实际返回时(如果我直接运行服务,则返回到记事本,或者返回到 Android)'/' 突然变为 ' {反斜杠}/'
我尝试在 android 应用中进行字符串替换:
result.replace("\/", "/");
但这会返回“无效的转义序列...”的相同错误,而且无论如何,我真的不想在电话上做这种工作。
那么,Return retVal 发生了什么突然插入所有这些转义字符??
【问题讨论】:
标签: wcf