求教各位,通过url串json数据,该怎样处理引号问题

ykpiverson 2012-08-18 06:33:40
有一个几经序列化好的json数据:
jsoEvent = {"eventTitle":"111","eventCreatedTime":"Sat Aug 18 13:57:39 格林尼治标准时间+0800 2012","cmd":"AddEvent","now":"2012-08-18 13:57:50","eventContent":"2222"}

我通过url
String eventUrl = "http://192.168.1.101:8080/TourUI/android_processAdd.ashx?a="+jsonEvent;
传入服务器,通过org.apach.http包,
public String getResponse(String url, DefaultHttpClient httpClient){
String strResult = null;
HttpGet httpRequest = new HttpGet(url);//到这一行就不执行了,
try {

HttpResponse httpResponse = httpClient.execute(httpRequest);
if(httpResponse.getStatusLine().getStatusCode()==HttpStatus.SC_OK){
//EntityUtils httpResponse.getEntity()
strResult = retrieveInputStream(httpResponse.getEntity());
}
else{
strResult = "无结果";
}
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
strResult = "无结果1";
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
strResult = "无结果2";
e.printStackTrace();
}finally{
httpRequest.abort();//结束请求
}
return strResult;
}
在这一句HttpGet httpRequest = new HttpGet(url);就不在2想下执行了,我认为是url的问题,是不是因为jsonEvent中引号的问题,求教大神该如何解决
...全文
1987 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
AC_frantic 2012-11-12
  • 打赏
  • 举报
回复
JSON中如果包含引号或双引号,会破坏JSON的格式。有两种方法可以解决。 在入库的时候可以使用addslashes()函数处理一下字符串,给引号前加上斜杠。被改的字符包括单引号 (')、双引号 (")、反斜线 backslash (\) 以及空字符NULL。 1 $text = addslashes($text); JavaScript的话,可以这样: 1 function valueReplace(v){ 2 v=v.toString().replace(new RegExp('(["\"])', 'g'),"\\\""); 3 return v; 4 } 5 var eValue = encodeURI($.trim(valueReplace(e.value)))
AC_frantic 2012-11-12
  • 打赏
  • 举报
回复
首先测一下如果没有引号有没有问题,有的话把url编码,然后用的时候在解码
AC_frantic 2012-11-12
  • 打赏
  • 举报
回复
日啊,楼上回帖子的都是猪么,不知道请不要乱回答好么
AMinfo 2012-08-18
  • 打赏
  • 举报
回复
发LogCat里面的详细出错信息。
ykpiverson 2012-08-18
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

应该是网址的问题,你试试你的手机能不能访问你的http://192.168.1.101
[/Quote]
真不是这个问题,手机和电脑都连着路由器,我试过了,可以访问。我纠结的是如何编码url中的json,因为其中含有引号,已经纠结很久了,哪位大哥给个解决方法啊
jgszhuzhu 2012-08-18
  • 打赏
  • 举报
回复
应该是网址的问题,你试试你的手机能不能访问你的http://192.168.1.101
ykpiverson 2012-08-18
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

另外,你用的http://192.168.1.101这种局域网IP前,先测试一下你的手机或者模拟器确定可以访问这个局域网IP。
[/Quote]
不是这个问题,我用百度的网址测试过了,是可以的
ykpiverson 2012-08-18
  • 打赏
  • 举报
回复
网址是没问题的,我测试了下,为这个http://192.168.1.101:8080/TourUI/android_processAdd.ashx?a={"eventTitle":"2325","eventCreatedTime":"2012-08-18 19:42:03","cmd":"AddEvent","now":"2012-08-18 19:42:12","eventContent":"258755"},我认为主要是因为url中json的引号问题,我想问的是该怎样处理这些引号,把json对象正确的传到服务器
AMinfo 2012-08-18
  • 打赏
  • 举报
回复
另外,你用的http://192.168.1.101这种局域网IP前,先测试一下你的手机或者模拟器确定可以访问这个局域网IP。
AMinfo 2012-08-18
  • 打赏
  • 举报
回复
String eventUrl = "http://192.168.1.101:8080/TourUI/android_processAdd.ashx?a="+jsonEvent;

在这句后面输出
Log.i("test", eventUrl);

看看网址到底是什么。

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧