文档章节

Java后台 如何获取 application/json的 字符串的形式的json数据

之渊
 之渊
发布于 2016/07/28 22:03
字数 414
阅读 339
收藏 1

例如 httpClient  模拟前端 调用生成json字符串:

// json样式
            // 接收参数json列表  
            JSONObject jsonParam = new JSONObject();  
            jsonParam.put("appKey", "00002");
            jsonParam.put("userToken", "12");// 
            jsonParam.put("v", "1.0");// 
            jsonParam.put("jsonString", jo());//
            jsonParam.put("sign", sign);/
            System.out.println("json格式传参>>>>"+jsonParam.toString());
            
            StringEntity entitystring =
                     new StringEntity(jsonParam.toString(),"utf-8");//解决中文乱码问题    
            
            entitystring.setContentEncoding("UTF-8");    
            entitystring.setContentType("application/json");    
            post.setEntity(entitystring);    

 

那么  如果我们在后台这样接收:

@RequestMapping("/user/login")
    @ResponseBody
    public String login(String appKey, String userToken, String v, String jsonString, String sign)
            throws Exception {

你会发现并没有获取到 对应的参数内容 ,这样我们必须 对该 json 字符串进行绑定了:

@RequestMapping("/user/login")
    @ResponseBody
    public String login(@RequestBody JSONObject jsonObject)
            throws Exception {

System.out.println(jsonObject.getString("appKey")+"登录》》》"+appKey);

我们就获取了 内容了,spring mav 帮我 解析了转成了 json对象或者是  bean对象,绑定 bean 也可以.

总之就是获取不到  请求的参数的,当然我们可以使用比较原始的方法获取 前端给过来的数据:

StringBuffer sb = new StringBuffer() ; 
        InputStream is = request.getInputStream(); 
        InputStreamReader isr = new InputStreamReader(is);   
        BufferedReader br = new BufferedReader(isr); 
        String s = "" ; 
        while((s=br.readLine())!=null){ 
        sb.append(s) ; 
        } 
        String strint =sb.toString(); 
        System.out.println("流里面的数据》》》"+strint);

获取了我们再进行 转换处理等等。

 

这样 下面的方式 使用表单提交或者是 直接的 json 格式数据的提交,而不是 json字符串

@RequestMapping("/user/login")
    @ResponseBody
    public String login(String appKey, String userToken, String v, String jsonString, String sign)
            throws Exception {

httpClient的表单提交方式:

List<BasicNameValuePair> parameters=new ArrayList<BasicNameValuePair>();
            
            parameters.add(new BasicNameValuePair("appKey", "00002"));
            parameters.add(new BasicNameValuePair("userToken", "12"));//对应用户的 token
            parameters.add(new BasicNameValuePair("v", "1.0"));
            parameters.add(new BasicNameValuePair("jsonString", jo()));
            parameters.add(new BasicNameValuePair("sign", sign));
            
            
            
            System.out.println("签名》》》"+sign);
            System.out.println("加密串"+jo());
            
            
            post.setEntity(new UrlEncodedFormEntity(parameters,"UTF-8"));

© 著作权归作者所有

之渊
粉丝 11
博文 565
码字总数 165175
作品 0
佛山
程序员
私信 提问
JSON-lib框架,转换JSON、XML

Json-lib可以将Java对象转成json格式的字符串,也可以将Java对象转换成xml格式的文档,同样可以将json字符串转换成Java对象或是将xml字符串转换成Java对象。 一、 准备工作 1、 首先要去官方...

五大三粗
2015/11/03
0
0
JSON-lib框架,转换JSON、XML不再困难

JSON-lib框架,转换JSON、XML不再困难 Json-lib可以将Java对象转成json格式的字符串,也可以将Java对象转换成xml格式的文档,同样可以将json字符串转换成Java对象或是将xml字符串转换成Java对...

DavidBao
2015/05/01
0
0
[学习笔记] [JSON] 轻量级数据交换格式JSON学习笔记

JSON基本概念: JSON全名: Java Script Object Natation. 即JavaScript的对象表现形式。 目前已经发展成一种轻量级的数据交换格式。 特点:不依赖于任何语言,跨平台。 使用场景主要用于不同...

kris_fei
2018/05/03
0
0
qmikjson最高效的java json 协议转换 架构之一

简介 qmikjson是基于java写的一套json协议转换框架,支持 文本跟javabean,map,list的相互转换,是目前市场上java语言最高效的转换框架之一. api极其简单 适用场景 适合小数据对象的数据转换,在...

leochen36
2013/10/13
0
9
Json 数据类型验证小框架 - only-json-validator

only-json-validator是Java校验json数据类型的一个小框架,基于fastjson做json解析。 因为在做项目时,现在Java后台接口多半在body中使用json做为数据传输,但是没找到比较想要的一款验证jso...

烙灵
03/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

“旧城改造”的背后——银泰新零售阿里云解决方案(上)

相关免费课程《银泰新零售上云解决方案精讲》上线中 立足实战 讲透经典案例 助你快速理解新零售 第一节学习地址 第二节学习地址 传统线下商业体上云的案例 与其说银泰上云,倒不如说银泰“旧...

阿里云官方博客
24分钟前
2
0
记一次升级Oracle驱动引发的死锁

问题描述 近期项目需要从虚拟机环境迁移到容器环境,其中有一个项目在迁移到容器环境之后的两天之内出现了2次“死锁(deadlock)”的问题,部分关键日志如下: Found one Java-level deadlock:...

ksfzhaohui
26分钟前
13
0
MySQL 中的 information_schema 数据库

欢迎查看原文 - 本博客仅记录 https://blog.csdn.net/kikajack/article/details/80065753 -- 是否开启bin_log日志: off为关闭-- show variables like 'log_%'; show variables like '......

莫库什勒
33分钟前
1
0
Random在高并发下的缺陷以及JUC对其的优化

Random可以说是每个开发都知道,而且都用的很6的类,如果你说,你没有用过Random,也不知道Random是什么鬼,那么你也不会来到这个技术类型的社区,也看不到我的博客了。但并不是每个人都知道...

编程SHA
38分钟前
2
0
T5大牛带你解析:如何实现分布式技术

1.分布式事务 2. 分布式锁 Java 原生 API 虽然有并发锁,但并没有提供分布式锁的能力,所以针对分布式场景中的锁需要解决的方案。 分布式锁的解决方案大致有以下几种: 基于数据库实现 基于缓...

李红欧巴
50分钟前
35
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部