java json utf-8_Java 编码 和JSON

1.编码

序列化(urlencode编码):经过urlencode编码

String a="[{\"clubNo\":\"10000002\",\"clubType\":\"1\"},{\"clubNo\":\"10000003\",\"clubType\":\"4\"},{\"clubNo\":\"10000004\",\"clubType\":\"3\"}]";

将字符串a经过urlencode编码: a = java.net.URLEncoder.encode(a,"utf-8");

反序列化(urldecode解码):

String a="%5b%7b%22clubNo%22%3a%2210000002%22%2c%22clubType%22%3a%221%22%7d%2c%7b%22clubNo%22%3a%2210000003%22%2c%22clubType%22%3a%224%22%7d%2c%7b%22clubNo%22%3a%2210000004%22%2c%22clubType%22%3a%223%22%7d%5d";

a=java.net.URLDecoder.decode(a,"UTF-8");

2.JSON

(1)将多个字符串转换成json数据:

String a="ert";

String c="kkkk";

JSONObject json=new JSONObject();

json.put("a", a);

json.put("c", c);

System.out.println(json.toJSONString());

{“a”:"ert","c":"kkkk"}

(2)解析json型的字符串:

String datas="{\"imei\":\"358732036143010\",\"version\":\"2.3\",\"apk\":[{\"appname\":\"SyncKey\",\"packagename\":\"com.discovery.synckey\"},{\"appname\":\"DbTest\",\"packagename\":\"com.discovery.synckey\"},{\"appname\":\"AppUpdate\",\"packagename\":\"com.discovery.synckey\"}]}";

JSONObject reqJson=JSONObject.parseObject(datas);

String imei=reqJson.getString("imei");

String apk=reqJson.getString("apk");//json型集合

JSONArray parseArry =JSONObject.parseArray(apk);

Iterator iterator =parseArry.iterator();

while(iterator.hasNext())

{

JSONObject object =(JSONObject)iterator.next();

String  appname =(String)object.getString("appname")

}

(3).

原数据

datas: {"hma17-kme-180425dntn":"1531@1531@3","ym800_7.5_18031521":"745@744@369"}

解析后的数据

{"maxPage":2,"list":[{"name":"hma17-kme-180425dntn","num":"1531","actnum":"1531","weeknum":"3"},{"name":"ym800_7.5_18031521","num":"745","actnum":"744","weeknum":"369"}]}

JSONObject reqJson=JSON.parseObject(datas);

for(Map.Entry entry:reqJson.entrySet()){

System.out.println("~!!!!!!!!!!!!!!!!!!!!!");

System.out.println(entry.getKey());

System.out.println(entry.getValue());

String c=(String)entry.getValue();

String [] res=c.split("@");

String name=entry.getKey();

String num=res[0];

String actNum=res[1];

String  weekNum=res[2];

}

(4)

String  devices="hXqLTLv9@SyJ4KieG@SNXYQLyR";

String [] res=devices.split("@");

List a=new JSONArray();

for(int i=1;i

{

a.add(res[i]);

}

(5)

原数据

result: ["BuildInfo","t1a_v1.3_build201805230930","IMEI","358732036575930","buildModel","AIINCART1","cpuID","M186MY50SVPL13","cpuInfo","mt6737h:3:0xd03:0x0:7:0x41","deviceSN","0123456789ABCDEF","sysFeature","24","iccid","89861117147550357527"]

解析后的数据

{

"data": {

"sysFeature": "24",

"iccid": "89861117147550357527",

"cpuID": "M186MY50SVPL13",

"BuildInfo": "t1a_v1.3_build201805230930",

"IMEI": "358732036575930",

"buildModel": "AIINCART1",

"cpuInfo": "mt6737h:3:0xd03:0x0:7:0x41",

"deviceSN": "0123456789ABCDEF"

},

"errorCode": "0000",

"errorMsg": "成功获取设备信息"

}

result = result.substring(1, result.length() - 1);

System.out.println("输出结果"+result);

String deviceArray[]= result.split(",");

List deviceInfo =Arrays.asList(deviceArray);for (int i = 0; i < deviceInfo.size(); i += 2) {

String str=deviceInfo.get(i);if (str.contains("BuildInfo")) {

BuildInfo=deviceInfo.get(i + 1).substring(1, deviceInfo.get(i + 1).length() - 1);

}else if (str.contains("IMEI")) {

IMEI=deviceInfo.get(i + 1).substring(1, deviceInfo.get(i + 1).length() - 1);

}else if (str.contains("buildModel")) {

buildModel=deviceInfo.get(i + 1).substring(1, deviceInfo.get(i + 1).length() - 1);

}else if (str.contains("cpuID")) {

cpuID=deviceInfo.get(i + 1).substring(1, deviceInfo.get(i + 1).length() - 1);

}else if (str.contains("cpuInfo")) {

cpuInfo=deviceInfo.get(i + 1).substring(1, deviceInfo.get(i + 1).length() - 1);

}else if (str.contains("deviceSN")) {

deviceSN=deviceInfo.get(i + 1).substring(1, deviceInfo.get(i + 1).length() - 1);

}else if (str.contains("sysFeature")) {

sysFeature=deviceInfo.get(i + 1).substring(1, deviceInfo.get(i + 1).length() - 1);

}else if (str.contains("iccid")) {

iccid=deviceInfo.get(i + 1).substring(1, deviceInfo.get(i + 1).length() - 1);

}

System.out.println("*******"+str);

}

errorCode="0000";

errorMsg="成功获取设备信息";

}

JSONObject json=newJSONObject();

JSONObject out=newJSONObject();

out.put("BuildInfo", BuildInfo);

out.put("IMEI", IMEI);

out.put("buildModel", buildModel);

out.put("cpuID", cpuID);

out.put("cpuInfo", cpuInfo);

out.put("deviceSN", deviceSN);

out.put("sysFeature", sysFeature);

out.put("iccid", iccid);json.put("errorCode", errorCode);

json.put("errorMsg", errorMsg);

json.put("data", out);

3.字符串不区分大小写进行比较

if(res[i].toLowerCase().contains(deviceId.toLowerCase())) //不区分大小写比较是否相等

club.replaceAll("\"\"\"", "\""); //去掉字符串club中的\

a=a.replace("\"", "");//去掉字符串a中的"

4.访问三方的接口

Maven项目中要加依赖:

com.bladejava

blade-kit

1.3.4

(1)get

url="http://"+ipNum+"/wxServer/GetOnlineDeviceID?num=ALL";

HttpRequest req=HttpRequest.get(url);

String content=req.body();  //三方接口返回的内容

(2)post请求

//openIdUrl  具体的url

HttpRequest request = HttpRequest.post(openIdUrl).contentType("application/json;charset=utf-8");

String res = request.body();  //三方接口返回的内容

JSONObject obj = JSON.parseObject(res);

String access_token=obj.getString("access_token"); //三方接口中具体某个字段值

(3)post请求带有数据型访问三方接口

//UNURL  具体的url

String xml="";

HttpRequest request = HttpRequest.post(UNURL).contentType("application/json;charset=utf-8").send(xml);

returnxml=request.body();

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/398112.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MVC5 + EF6 完整入门教程三

MVC5 EF6 完整入门教程三 原文:MVC5 EF6 完整入门教程三期待已久的EF终于来了。 学完本篇文章&#xff0c;你将会掌握基于EF数据模型的完整开发流程。 本次将会完成EF数据模型的搭建和使用。 基于这个模型&#xff0c;将之前的示例添加数据库查询验证功能。 文章提纲 概…

纯手写的css3正方体旋转效果

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>css3旋转立方体效果</title><style type"text/css">*{margin: 0;padding: 0;}.box{width: 400px;height: 400px;border: 1px solid #000;margin: 30p…

Expect 教程中文版

http://blog.csdn.net/chinalinuxzend/article/details/1842588原贴&#xff1a;http://blog.chinaunix.net/u/13329/showart.php?id110100 Expect 教程中文版[From] http://www.linuxeden.com/edu/doctext.php?docid799  本教程由*葫芦娃*翻译&#xff0c;并做…

java boolean转int,java如何将int转换为boolean

When i convert:int B1;boolean AB;It gives error: Incompatible types, which is trueBut when I write this code:int C0;boolean AC1;it gives falsewhile if I change value of C to 1 it gives true.I dont understand how compiler is doing it.解决方案int C0;boolean …

习惯看新闻头条 一个程序员分享的工作心得

原本想找链接的。可是...我还是选择手打 原作者&#xff1a;刘鹏看未来 原文标题 10程序员总结的20条经验教训 开发 1.从小事做起&#xff0c;然后再扩展 无论是创建一个新的系统&#xff0c;还是添加功能到现有的系统中&#xff0c;我总是从一个简单到几乎任何所需功能的版…

Java-JUC(十):线程按序交替执行

问题&#xff1a; 有a、b、c三个线程&#xff0c;使得它们按照abc依次执行10次。 实现&#xff1a; package com.dx.juc.test;import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock;public…

IntelliTrace 调试、定位异常

最近看了一个开源数据库管理&#xff0c;然后没有认真看它的配置环境&#xff0c;想看看是什么东西&#xff0c; 然后发现有类型转换的错误&#xff0c;但是一下子也定位不到哪里出错&#xff1f; 所以对于这种一下子找不到异常在哪里的&#xff0c;可以使用intellitrace智能跟…

java referencemap_Java中TypeReference用法说明

来源于&#xff1a;https://blog.csdn.net/zhuzj12345/article/details/102914545在使用fastJson时,对于泛型的反序列化很多场景下都会使用到TypeReference&#xff0c;例如&#xff1a;void testTypeReference() {List list new ArrayList<>();list.add(1);list.add(9)…

zedboard--zynq使用自带外设IP让ARM PS访问FPGA(八) 转载

文章来源 http://blog.chinaaet.com/detail/34609 熟悉了xps的操作&#xff0c;IP添加&#xff0c;总线连接设置&#xff0c;图形化方法检查&#xff08;open graphical design view&#xff09;&#xff0c;检查总线及端口连接。 在file下面的图标中&#xff0c;打开导出到SDK…

[php入门] 4、HTML基础入门一篇概览

[php入门] 1、从安装开发环境环境到&#xff08;庄B&#xff09;做个炫酷的登陆应用 [php入门] 2、基础核心语法大纲 [php入门] 3、WAMP中的集成MySQL相关基础操作 1、HTML的作用   HTML是超文本标记语言&#xff0c;主要用于制作页面结构&#xff1b;而经常与之一起用的CSS是…

Python3 爬虫爬取中国图书网(淘书团) 记录

本人为一名刚开始学Python爬虫的小白&#xff0c;开贴仅为记录下自己的学习历程&#xff0c;方便做review 要爬取链接&#xff1a;http://tuan.bookschina.com/ 要爬取内容&#xff1a; 图书名称&#xff0c; 图书价格&#xff0c; 以及对应预览图的link 本文用到py packages: …

java连接字符串_Java如何连接字符串

Java中的连接是将两个字符串连接在一起的操作。您可以使用加()运算符或String的concat ()方法来连接字符串。使用运算符使用运算符是在Java中连接两个字符串的最常用方法。您可以提供变量&#xff0c;数字或字符串文字(始终用双引号括起来)。例如&#xff0c;要组合字符串“I’…

移动Web应用程序开发HTML5篇

https://software.intel.com/zh-cn/blogs/2012/03/09/webhtml5-offline-web-applications转载于:https://www.cnblogs.com/wln3344/p/4521909.html

分布式之延时任务方案解析

每天学习一点点 编程PDF电子书、视频教程免费下载&#xff1a;http://www.shitanlife.com/code引言 在开发中&#xff0c;往往会遇到一些关于延时任务的需求。例如 生成订单30分钟未支付&#xff0c;则自动取消生成订单60秒后,给用户发短信对上述的任务&#xff0c;我们给一个专…

linux命令学习

Make 命令 http://www.cnblogs.com/peida/tag/%E6%AF%8F%E6%97%A5%E4%B8%80linux%E5%91%BD%E4%BB%A4/ 1 [developmentwww /]$ cd ————直接回到自己的主目录。 2 软件安装步骤 1、configure&#xff0c;这一步一般用来生成 Makefile&#xff0c;为下一步的编译做准备&#…

mysql 搭建日志服务器_一、架构01-搭建日志服务器Rsyslog

搭建日志服务器1、环境配置环境&#xff1a;node01 192.168.32.132 rsyslog服务器node02 192.168.32.128 rsyslog客户端2、node01、node02安装rsyslog软件包[rootnode01 ~]# yum install -y rsyslog[rootnode02 ~]# yum install -y rsyslog3、修改node01上rsyslog的配置文件…

使用了BeanUtils的简单操作

直接获取对象的某个值et.createCell(BeanUtils.getProperty(o, eh.getFieldName())); 简单为对象某个字段赋值c.setCellValue(BeanUtils.getProperty(datas.get(i),headers.get(j).getFieldName())); beanUtils的底层是内省。下面是又一个小例子&#xff0c;实现了map和bean的映…

NTP服务器

随着计算机网络的迅猛发展&#xff0c;网络应用已经非常普遍&#xff0c;众多的领域的网络系统&#xff0c;如电力&#xff0c;石化&#xff0c;金融业&#xff08;证券&#xff0c;银行&#xff09;&#xff0c;广电业&#xff08;广播&#xff0c;电视&#xff09;&#xff0…

ところが

ところが 1表示确定顺接条件&#xff0c;连接两个并存的事项&#xff0c;前项为后项的契机&#xff0c;相当于たら的部分用法  あしたは晴れるだろうと思って寝たが、翌朝起きてみたところ、やっぱり晴れていた。 2表示确定逆接条件&#xff0c;后项往往是与自己的意愿相反的…

mysql 永真_sql注入

Sql注入Sql注入成因&#xff1a;1)转义字符处理不当(如’,--,/**/,会截断原有的语句&#xff0c;执行新语句)&#xff1b;2)类型处理不当(如接受的是整型的参数&#xff0c;并没有校验也可以接受字符型数据)3)查询语句的组装不当4)错误处理不当5)权限配置不当(可以执行高权限语…