前天用php调用另外一家公司的json接口时,出现很奇怪的问题
他们的接口是传入经纬度返回周边的经销商店信息,但是他们在广州测试没有问题,但是在我们在北京测试死活出不来,奇怪的是在纬度为39.9时出现不了结果,但是39.8时能够出现结果。当时怀疑他们的数据库或者查询逻辑有问题,或者把我的经纬度给屏蔽了
传入我们的经纬度,php老是解析出现null的问题,于是我用curl直接调用接口发现当传入北京的纬度时,他们返回的json数据中有一家店的电话号码里有回车
,我就初步判断他们是直接查询数据库,拼接成json的,于是我写了个测试代码测试一下.net转出来的json是否有回车
-
<%@ Page Language="C#" %>
-
<%@ Import Namespace="System.Web.Script.Serialization" %>
-
<%
-
Hashtable hs = new Hashtable();
-
String phone="022-2212232\n0222-2322222";
-
hs["addr"] = "沧州市运河区渤海路";
-
hs["sales_phone"] = phone;
-
-
JavaScriptSerializer serializer = new JavaScriptSerializer();
-
string jsonString = serializer.Serialize(hs);
-
-
%>
-
<%=jsonString%>
-
<%=phone%>
果然没有回车了,都变为\n
JavaScriptSerializer应该是在.net framework3.5之上可以使用
关于json格式是有明确定义的
json.org上说的是控制字符和双引号都得转义
A string is a sequence of zero or more Unicode characters, wrapped in double quotes, using backslash escapes. A character is represented as a single character string. A string is very much like a C or Java string.
阅读(7024) | 评论(0) | 转发(0) |