kankan原创

与php后台发送数据的时候。要求用到这样的格式。

private void sendJson(){

//初始化自己定义的handler

CashHandler handler = new CashHandler(this);

//请求主地址。写在自己定义Application中了,后面是接口名字
String url = MApplication.get().getAppServiceUrl() + "order/submit";

//自己定义的发送请求方法
LReqEntity entity = new LReqEntity();
entity.setUrl(url);
                 //Lreqentity中,post方法。传參数的格式是Map(String,String)

Map<String, String> map = new HashMap<String, String>();

//拼接字符串

StringBuffer params = new StringBuffer();
// 从积分商城的提交 JUMPKEY是7,则是从积分商城购买

if (JUMPKEY.equals("7")) {

//dbmanager是自己定义数据库查询方法。查询的是购物车终于购买的订单

List<CarteEntity> cartList = DBManager.get().queryFinalCarte(

userEntity.id);

//拼接字符串

params.append("[");
for (int i = 0; i < cartList.size(); i++) {
CarteEntity scoreEntity = new CarteEntity();

scoreEntity = cartList.get(i);

//下一行就是转义字符。为了发送时候,拼接出来“这个字符,用了转义字符  \"

//这样发送效果就是       {"A":54}

params.append("{\"A\":");
params.append(scoreEntity.id + "");
params.append(",");
params.append("\"B\":");
params.append(scoreEntity.buyCount);
params.append(",");
params.append("\"C\":");
params.append("\"score\"}");
if (i < cartList.size() - 1) {
params.append(",");
}
}

params.append("]");

}

entity.setParams(map);
entity.setReqMode(ReqMothed.POST);

handler.startLoadingData(entity);

}

这样,达到了拼接要求的效果。http://192.168.100.180:85/service/order/submit?{A=[{"A":95,"B":3,"C":"score"},{"A":99,"B":3,"C":"score"}], B=89}

有关转义字符,内容非常多。

JAVA中转义字符:

最多的就是第一条了

1.特殊字符:就3个 
\":双引號 
\':单引號 
\\:反斜线

2.八进制转义序列:\ + 1到3位5数字。范围'\000'~'\377' 
\0:空字符 
3.Unicode转义字符:\u + 四个十六进制数字;0~65535 
\u0000:空字符

4.控制字符:5个

\' 单引號字符

\\ 反斜杠字符

\r 回车

\n 换行

\f 走纸换页

\t 横向跳格

\b 退格

点的转义:. ==> u002E 
美元符号的转义:$ ==> u0024 
乘方符号的转义:^ ==> u005E 
左大括号的转义:{ ==> u007B 
左方括号的转义:[ ==> u005B 
左圆括号的转义:( ==> u0028 
竖线的转义:| ==> u007C 
右圆括号的转义:) ==> u0029 
星号的转义:* ==> u002A 
加号的转义:+ ==> u002B 
问号的转义:? ==> u003F 
反斜杠的转义: ==> u005C 
====================================================================== 
以下的程序使用了两个Unicode的转义字符,它们是用其十六进制代码来表示Unicode字符。

那么,这个程序会打印什么呢?
Java代码 
public class EscapeRout{   
public static void main(String[] args){   
// \u0022 是双引號的Unicode转义字符   
System.out.println("a\u0022.length()   
+\u0022b".length());   
}   
}

public class EscapeRout{ 
public static void main(String[] args){ 
// \u0022 是双引號的Unicode转义字符 
System.out.println("a\u0022.length() 
+\u0022b".length()); 

}

对该程序的一种非常肤浅的分析会觉得它应该打印出26,由于在由两个双引號"a\u0022.length()+\u0022b"标识的字符串之间总共同拥有26个字符。 
略微深入一点的分析会觉得该程序应该打印16,由于两个Unicode转义字符每个在源文件里都须要用6个字符来表示。可是它们仅仅表示字符串中 的一个字符。因此这个字符串应该比它的外表看其来要短10个字符。 假设你执行这个程序,就会发现事情远不是这么回事。

它打印的既不是26也不是16。而是2。

理解这个谜题的关键是要知道:Java对在字符串字面常量中的Unicode转义字符没有提供不论什么特殊处理。编译器在将程序解析成各种符号之前, 先将Unicode转义字符转换成为它们所表示的字符[JLS 3.2]。因此,程序中的第一个Unicode转义字符将作为一个单字符字符串字面常量("a")的结束引號。而第二个Unicode转义字符将作为还有一 个单字符字符串字面常量("b")的開始引號。

程序打印的是表达式"a".length()+"b".length(),即2。

假设该程序的作者确实希望得到这样的行为,那么以下的语句将要清楚得多:

Java代码 
System.out.println("a".length()+"b".length());

更有可能的情况是该作者希望将两个双引號字符置于字符串字面常量的内部。

使用Unicode转义字符你是不能实现这一点的,可是你能够使用转义字 符序列来实现[JLS 3.10.6]。表示一个双引號的转义字符序列是一个反斜杠后面紧跟着一个双引號(\”)。假设将最初的程序中的Unicode转义字符用转义字符序列来 替换,那么它将打印出所期望的16(错误,应该是14。不知道是怎么会出来16):

Java代码 
System.out.println("a\".length()+\"b".length());

很多字符都有对应的转义字符序列,包含单引號(\')、换行(\n)、制表符(\t)和反斜线(\\)。你能够在字符字面常量和字符串字面常量中使用转义字符序列。

实际上。你能够通过使用被称为八进制转义字符的特殊类型的转义字符序列,将不论什么ASCII字符置于一个字符串字面常量或一个字符字面常量中,可是最好是尽可能地使用普通的转义字符序列。

普通的转义字符序列和八进制转义字符都比Unicode转义字符要好得多,由于与Unicode转义字符不同,转义字符序列是在程序被解析为各种符号之后被处理的。

ASCII是字符集的最小公共特性集。它仅仅有128个字符,可是Unicode有超过65,000个字符。一个Unicode转义字符能够被用来在仅仅使用ASCII字符的程序中插入一个Unicode字符。一个Unicode转义字符精确地等价于它所表示的字符。

Unicode转义字符被设计为用于在程序猿须要插入一个不能用源文件字符集表示的字符的情况。它们主要用于将非ASCII字符置于标识符、字符 串字面常量、字符字面常量以及凝视中。

偶尔地,Unicode转义字符也被用来在看起来颇为相似的数个字符中明白地标识当中的某一个。从而添加程序的清晰 度。

总之,在字符串和字符字面常量中要优先选择的是转义字符序列。而不是Unicode转义字符。Unicode转义字符可能会由于它们在编译序列中 被处理得过早而引起混乱。不要使用Unicode转义字符来表示ASCII字符。

在字符串和字符字面常量中。应该使用转义字符序列;对于除这些字面常量之 外的情况,应该直接将ASCII字符插入到源文件里。

转义序列 含义 
\n 回车(\u000a) 
\t 水平制表符(\u0009) 
\b 空格(\u0008) 
\r 换行(\u000d) 
\f 换页(\u000c) 
\' 单引號(\u0027) 
\" 双引號(\u0022) 
\\ 反斜杠(\u005c) 
\ddd 三位八进制 
\udddd 四位十六进制 
JAVA中转义字符: 
1.八进制转义序列:
\ + 1到3位5数字;范围'\000'~'\377' 
\0:空字符 
2.Unicode转义字符:
\u + 四个十六进制数字;0~65535 
\u0000:空字符 
八进制的是1到3个数字并且注意数值范围,假设超了范围也会编译错误的,而十六进制的转义必须是4个十六进制数字。并且有一些无法转义,如'\u000a'。无法转移,会出现编译错误,并且相当多的数字没有相应的字符,仅仅会转义成问号 而对于数字的转义,仅仅要不超过范围既能够了。

3.特殊字符:就3个 \":双引號 \':单引號 \\:反斜线 
4.控制字符:5个 \' 单引號字符 \\ 反斜杠字符 \r 回车 \n 换行 \f 走纸换页 \t 横向跳格 \b 退格 
点的转义:. ==> u002E 
美元符号的转义:$ ==> u0024 
乘方符号的转义:^ ==> u005E 
左大括号的转义:{ ==> u007B 
左方括号的转义:[ ==> u005B 
左圆括号的转义:( ==> u0028 
竖线的转义:| ==> u007C 
右圆括号的转义:) ==> u0029 
星号的转义:* ==> u002A 
加号的转义:+ ==> u002B 
问号的转义:? ==> u003F 
反斜杠的转义: ==> u005C

Android,使用Json发送数据中,使用的Java转义字符 KanKan原创相关推荐

  1. Android通过蓝牙发送数据到Windows PC电脑:Java实现

    Android通过蓝牙发送数据到Windows PC电脑:Java实现 Android手机设备之间通过蓝牙连接然后发送数据,这在我之前的蓝牙专栏里面有介绍,详情见专栏:https://blog.csd ...

  2. android jpush json,发送了正确的JPush json却报1002

    问题描述:调用jPushClient.sendPush前将PushPayload转换成JSON串打印到日志上,检查日志上的JSON发现没有错误,但是response返回报{"error&qu ...

  3. 如何从返回数据类型为json的数据中提取特定数据?

    1.首先ipmort import jsonimport requests 2.接口返回数据 response = requests.post(request_url, data=params, he ...

  4. android json mysql_Android通过json向MySQL中读写数据的方法详解【读取篇】

    本文实例讲述了Android通过json向MySQL中读取数据的方法.分享给大家供大家参考,具体如下: 首先 要定义几个解析json的方法parseJsonMulti,代码如下: private vo ...

  5. android json mysql_Android通过json向MySQL中读写数据的方法详解【写入篇】

    本文实例讲述了Android通过json向MySQL中写入数据的方法.,具体如下: 先说一下如何通过json将Android程序中的数据上传到MySQL中: 首先定义一个类JSONParser.Jav ...

  6. touch服务器端文件,Sencha touch 2 入门 -------- DataView 显示服务器端JSON文件数据...

    今天学习了下DataView如何显示JSON文件数据,废话不多说,直接贴代码: 首先看下文件目录: 然后看下我们要处理的JSON文件,bookInfo.json. { "success&qu ...

  7. 【物联网】SIM908/508 GPRS发送数据|送数据控制符|透明传输

    目录 SIM908/508 GPRS发送数据中的控制符 sim300 GPRS数据收发程序 [GPRS透明传输]GPRS透明传输 GPRS应用中TCP与UDP的比较 [GPRS IP地址]GPRS I ...

  8. 海量数据寻找最频繁的数据_在数据中寻找什么

    海量数据寻找最频繁的数据 Some activities are instinctive. A baby doesn't need to be taught how to suckle. Most p ...

  9. android post json格式,Android中post请求传递json数据给服务端的实例

    在最近的项目中有个需求是这样的: 入参封装成JSON,EXAMPLE: { "uuid": "iamauuid","clientType": ...

最新文章

  1. Codeforces Round #699 (Div. 2) (A ~ F)6题全,超高质量良心题解【每日亿题】2021/2/6
  2. JUC多线程:CountDownLatch、CyclicBarrier、Semaphore同步器原理总结
  3. PHP微信支付没有收到微信的回调怎么修改订单状态:主动查询
  4. 好文|张一鸣:10年面试2000人,我发现混的好的人,全都有同一个特质
  5. DeepFocus,基于AI实现更逼真的VR图像
  6. 通过Apache Kafka集成流式传输大数据
  7. 9.2NOIP模拟题
  8. C# 使用Panel控件实现窗体嵌套
  9. Linux内核源代码阅读
  10. kitti点云地图拼接
  11. 程序员如何高效准备简历和面试06:使用STAR法则表现自己
  12. 天地图API搜索。定位等
  13. 交叉验证中cv=? 与 cv=KFold(n_splits=?)的区别
  14. 详解数据结构课程设计———运动会分数统计
  15. AUTODESK 卸载工具,完美彻底卸载清除干净autodesk各种软件残留注册表和文件
  16. 微信公众号推广,选择哪一种类型文章产生共鸣
  17. 【Office软件使用】Word往框里打勾
  18. 数据分析 知识体系 Python篇
  19. 抓取html指定标签内容,javascript怎样获取某个标签的内容?
  20. How to Generate PDF in Ruby on Rails(HowtoGeneratePDFs) ZT

热门文章

  1. 【Android UI设计与开发】第07期:底部菜单栏(二)Fragment的详细介绍和使用方法
  2. Dart Metadata 使用
  3. sql 一对多获得一条数据_从真实销售数据获得insights——SQL部分
  4. 玩转VSCode插件之Remote-SSH
  5. [设计模式随意链接]——命令模式
  6. QQ音乐的各种相关API
  7. [csu/coj 1078]多个序列的最长公共子序列
  8. 互联网创业如何与传统行业人士合作?
  9. (转载)C语言的零长数组
  10. 4月23日遇到的问题