热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

从json响应中删除符号

如何解决《从json响应中删除符号》经验,为你挑选了1个好方法。

我正在使用Volley Library进行JSON解析,而解析响应如下:

JSON响应:

{"category":{"420":{"key":420,"label":{"420":"Acacia"},"count":"1"},"421":{"key":421,"label":.....

我们可以看到,在一个符号来的响应开始 .如何在不将其转换为字符串的情况下从Android端删除此符号?由于这个符号,我无法获得JSON对象.

代码:

private void jsonRequestGetFilterData() {
    utils.showDialog();
    String url = Constants.FILTER_URL;
    Log.e("URL", "" + url);

    StringRequest eventoReq = new StringRequest(Request.Method.POST, url,
            new Response.Listener() {
                @Override
                public void onResponse(String response) {
                    Log.e("RESPONSE", response);
                    utils.hideDialog();
                    try {
                        JSONObject jsOnObject= new JSONObject(response);
                        Log.e("jsonObject",""+jsonObject);

                        JSONObject jsOnObjectCategory= jsonObject.getJSONObject("category");
                        Log.e("jsonObjectCategory",""+jsonObjectCategory);



                    } catch (JSONException e) {
                        e.printStackTrace();
                        utils.hideDialog();
                    }
                }
            }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Log.e("Error: ", "" + error.getMessage());
            utils.hideDialog();

        }
    }) {
        @Override
        protected Map getParams() {
            // Posting parameters to login url
            Map params = new HashMap();
            params.put("customer_id", pref.getString(Constants.SP_CUSTOMER_ID, ""));
            params.put("store_id", pref.getString(Constants.SP_STORE_ID, ""));
            params.put("currency_code", pref.getString(Constants.SP_CURRENCY_CODE, ""));

            Log.e("customer_id",""+pref.getString(Constants.SP_CUSTOMER_ID, ""));
            Log.e("store_id",""+pref.getString(Constants.SP_STORE_ID, ""));
            Log.e("currency_code",""+pref.getString(Constants.SP_CURRENCY_CODE, ""));
            return params;
        }
    };
    eventoReq.setRetryPolicy(new DefaultRetryPolicy(
            60000,
            DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
            DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));


    AppController.getInstance(FilterActivity.this).addToRequestQueue(eventoReq);
}

T.J. Crowder.. 5

您的响应以字节顺序标记(BOM)开头.在您正在阅读响应的级别,您需要确保流或您正在使用的任何内容知道响应的编码(显然它不会自动检测它).当它知道正确的编码时,它应该理解并处理BOM.

通常,这是通过Content-Type服务器响应中的标头来处理的,这是应该修复的位置.但是如果由于某种原因你不能在那里修复它,通常在创建读取流以强制编码时有一个选项.你的看起来像UTF-8.

不要只是使用substring或类似地跳过它.字符串中的其他字符可能已被错误地解释,因为正在使用错误的编码.(这不仅仅适用于晦涩的角色,£符号因编码而异,以及€和其他任何数量.)

更多:绝对最低每个软件开发人员绝对必须知道Unicode和字符集(没有借口!)



1> T.J. Crowder..:

您的响应以字节顺序标记(BOM)开头.在您正在阅读响应的级别,您需要确保流或您正在使用的任何内容知道响应的编码(显然它不会自动检测它).当它知道正确的编码时,它应该理解并处理BOM.

通常,这是通过Content-Type服务器响应中的标头来处理的,这是应该修复的位置.但是如果由于某种原因你不能在那里修复它,通常在创建读取流以强制编码时有一个选项.你的看起来像UTF-8.

不要只是使用substring或类似地跳过它.字符串中的其他字符可能已被错误地解释,因为正在使用错误的编码.(这不仅仅适用于晦涩的角色,£符号因编码而异,以及€和其他任何数量.)

更多:绝对最低每个软件开发人员绝对必须知道Unicode和字符集(没有借口!)


推荐阅读
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 标题: ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • 本文讨论了如何在codeigniter中识别来自angularjs的请求,并提供了两种方法的代码示例。作者尝试了$this->input->is_ajax_request()和自定义函数is_ajax(),但都没有成功。最后,作者展示了一个ajax请求的示例代码。 ... [详细]
  • iOS超签签名服务器搭建及其优劣势
    本文介绍了搭建iOS超签签名服务器的原因和优势,包括不掉签、用户可以直接安装不需要信任、体验好等。同时也提到了超签的劣势,即一个证书只能安装100个,成本较高。文章还详细介绍了超签的实现原理,包括用户请求服务器安装mobileconfig文件、服务器调用苹果接口添加udid等步骤。最后,还提到了生成mobileconfig文件和导出AppleWorldwideDeveloperRelationsCertificationAuthority证书的方法。 ... [详细]
  • 基于Socket的多个客户端之间的聊天功能实现方法
    本文介绍了基于Socket的多个客户端之间实现聊天功能的方法,包括服务器端的实现和客户端的实现。服务器端通过每个用户的输出流向特定用户发送消息,而客户端通过输入流接收消息。同时,还介绍了相关的实体类和Socket的基本概念。 ... [详细]
  • 本文介绍了在MFC下利用C++和MFC的特性动态创建窗口的方法,包括继承现有的MFC类并加以改造、插入工具栏和状态栏对象的声明等。同时还提到了窗口销毁的处理方法。本文详细介绍了实现方法并给出了相关注意事项。 ... [详细]
  • 本文介绍了一个React Native新手在尝试将数据发布到服务器时遇到的问题,以及他的React Native代码和服务器端代码。他使用fetch方法将数据发送到服务器,但无法在服务器端读取/获取发布的数据。 ... [详细]
  • SpringBoot整合SpringSecurity+JWT实现单点登录
    SpringBoot整合SpringSecurity+JWT实现单点登录,Go语言社区,Golang程序员人脉社 ... [详细]
  • Activiti7流程定义开发笔记
    本文介绍了Activiti7流程定义的开发笔记,包括流程定义的概念、使用activiti-explorer和activiti-eclipse-designer进行建模的方式,以及生成流程图的方法。还介绍了流程定义部署的概念和步骤,包括将bpmn和png文件添加部署到activiti数据库中的方法,以及使用ZIP包进行部署的方式。同时还提到了activiti.cfg.xml文件的作用。 ... [详细]
  • 用Vue实现的Demo商品管理效果图及实现代码
    本文介绍了一个使用Vue实现的Demo商品管理的效果图及实现代码。 ... [详细]
  • 本文整理了315道Python基础题目及答案,帮助读者检验学习成果。文章介绍了学习Python的途径、Python与其他编程语言的对比、解释型和编译型编程语言的简述、Python解释器的种类和特点、位和字节的关系、以及至少5个PEP8规范。对于想要检验自己学习成果的读者,这些题目将是一个不错的选择。请注意,答案在视频中,本文不提供答案。 ... [详细]
  • express工程中的json调用方法
    本文介绍了在express工程中如何调用json数据,包括建立app.js文件、创建数据接口以及获取全部数据和typeid为1的数据的方法。 ... [详细]
author-avatar
wu勿望我_957
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有