2011-03-18 34 views
2

我配置了wcf服务和方法返回一些结构。 问题是响应 '\' 所有的符号开始以 '/' 例子:WCF + json。 WCF响应无效预计字符串

[ 
    { 
     "rel":"http:\/\/localhost:3354\/customer\/1\/order", 
     "uri":"http:\/\/localhost:3354\/customer\/1\/order\/3" 
    }, 
    { 
     "rel":"http:\/\/localhost:3354\/customer\/1\/order", 
     "uri":"http:\/\/localhost:3354\/customer\/1\/order\/5" 
    }, 
    { 
     "rel":"http:\/\/localhost:3354\/customer\/1\/order", 
     "uri":"http:\/\/localhost:3354\/customer\/1\/order\/8" 
    } 
] 

我只返回的http://本地主机:3354 /客户/ 1 /订单! 为什么这些符号被添加,我该如何删除它们?

@"http://cuustomer/1"

在JSON "http:\/\/cuustomer\/1"

+2

您是否正在返回:'http:\\ localhost:3354 \ customer \ 1 \ order'或'http:// localhost:3354/customer/1/order'? – SDReyes 2011-03-18 16:14:20

+1

对不起,只是在这里的描述misstake。 Wcf返回'localhost:3354/customer/1/order'; – Evgeny 2011-03-18 16:19:45

回答

3

'\'是JSON中的控制字符。为了在字符串中包含\,你必须用/字符来转义它。任何JSON客户端应该能够正确解释转义字符,因此您不需要(而不是)对WCF代码进行任何修改。

此外,Pradeep是正确的。网址使用正斜杠。

+1

是的。那就对了。 Iphone开发者设法解析这个字符串。所以问题解决了。 – Evgeny 2011-03-18 16:57:58

3

的http:\本地主机:你为什么要使用反斜杠3354 \用户\ 1只\为了

。常用的方法是有正斜杠。我希望将您的网址设为“http:// localhost:3354/customer/1/order”即可解决问题。

+1

是的,这是在问题描述misstake这里。在服务器上我有url http:// localhost:3354/customer/1/order – Evgeny 2011-03-18 16:20:31

5

JSON spec逃逸斜线。

任何-Unicode的character-除了 - “ - 或 - 或 - 控制字符 \” \ \/ \ b \˚F \ n \ r \吨 \Ú四己数字

所以: “/” 在C#变为 '\ /' 在JSON

+1

iphone上的开发人员表示他们需要url http:// localhost:3354/customer/1/order没有符号'\'有可能做到它?或者只是做错了什么? – Evgeny 2011-03-18 16:29:10