Maison  >  Article  >  Java  >  Le problème des données de transmission JSON tronquées en Java

Le problème des données de transmission JSON tronquées en Java

尚
original
2019-12-30 09:24:073537parcourir

Le problème des données de transmission JSON tronquées en Java

Solution au problème tronqué des données de transmission json en java : (Recommandé : tutoriel vidéo Java)

1 Effectuez ISO-8859 sur. les paramètres d'abord encodage -1, puis décodage avec utf-8

    @RequestMapping(method=RequestMethod.GET)
    @ResponseBody
    public ResponseEntity<ResultModel> searchBorrows(String borrow_name) 
    throws UnsupportedEncodingException{
           //解决乱码问题
         System.out.println("编码前===:"+borrow_name);//乱码
         String borrowName=new String(borrow_name.getBytes("ISO-8859-1"),"utf-8");
         System.out.println("编码后:========="+borrowName);//正常

2. S'il s'agit d'une requête générale (requête json** non-ajax tronquée**, configurez le filtre chinois directement dans web.xml. ) comme suit :

<filter>
        <filter-name>encodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>utf-8</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>encodingFilter</filter-name>
        <url-pattern>/*</url-pattern><!-- 对请求项目下所有资源进行过滤-->
    </filter-mapping>

Lorsque springmvc n'est pas utilisé, vous pouvez également ajouter cette phrase pour résoudre le problème tronqué de la demande de publication : request.setCharacterEncoding("UTF-8");
Remarque : tomcat8 a résolu le problème tronqué de la requête get Oui, tomcat7 doit encore le résoudre par lui-même

3. Les données json d'ajax sont tronquées

Parfois, des requêtes asynchrones sont nécessaires dans le projet, qui peut être implémenté dans l'annotation du fichier de configuration springmvc. Ajoutez simplement deux convertisseurs aux balises adapter et mapper, ce qui peut résoudre le problème des caractères tronqués dans les demandes et réponses de données json (si l'encodage Tomcat n'a pas été modifié, il y aura toujours des caractères tronqués, et tous les caractères tronqués sont causés par de nombreux facteurs).

Ce qui suit consiste à configurer les deux convertisseurs json dans spinngmvc pour résoudre le problème des demandes de données json et des caractères tronqués dans la réponse.

<!-- 注解的适配器和映射器 -->
    <mvc:annotation-driven>
        <mvc:message-converters>
            <!--@ResponseBody 中文响应乱码 -->
            <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                <property name="supportedMediaTypes">
                    <list>
                        <value>
                            text/plain;charset=UTF-8
                        </value>
                        <value>
                            text/html;charset=UTF-8
                        </value>

                        <value>
                            application/json;charset=UTF-8
                        </value>
                        <value>
                            application/x-www-form-urlencoded;charset=UTF-8                     
                        </value>
                    </list>
                </property>
            </bean>


<!-- JSON中文请求乱码及解决 
HttpMediaTypeNotAcceptableException: Could not find acceptable representation  异常信息-->
            <bean id="jacksonMessageConverter"
                class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
                <property name="supportedMediaTypes">
                    <list>
                        <value>
                            application/json;charset=UTF-8
                        </value>
                        <value>
                            application/x-www-form-urlencoded;charset=UTF-8                     
                        </value>
                    </list>
                </property>
            </bean>
        </mvc:message-converters>
    </mvc:annotation-driven>

Pour plus de connaissances sur Java, veuillez faire attention à la colonne Tutoriel de base Java.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn