Sping ControlはJsonデータのシーケンス化を返します(複数のエスケープスラッシュの原因)

2987 ワード

注記@ResponseBodyを付けると文字列が返され、springプロファイルに出力オブジェクトを追加してJSONに解析する場合があることを知っています.
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
    <property name="messageConverters">
        <list>
            <ref bean="jsonConverter" />
        list>
    property>
bean>

<bean id="jsonConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
    
    <property name="supportedMediaTypes" value="application/json" />
    
bean>>

これで私たちが戻るときに文字列を手動でつづる必要がなくなり、次のように返すこともできます.
    @RequestMapping(value = "/cmdb/listsoftwareenv", method = RequestMethod.GET)
    @ResponseBody
    public String doGetListSoftwareEnv() {
        SoftwareEnv softwareEnv = new SoftwareEnv();
        List list = softwareEnvService.getList(softwareEnv);
        return JSON.toJSONString(list, SerializerFeature.WriteMapNullValue);
    }

これにより、[{id:1,description:[desc記述],script:[1.2.3]},{id:2,description:[002],script:[1.2.4]},{id:4,description:[desc 1],{id:5,description:[desc 2],script:[scr 2]]]というJSON列も返される.
もしあなたが配置してからJSOnsStringに戻るならば:このようにすれば2回シーケンス化して、エスケープ文字を増やして多反スラッシュの形式になります.
だからこの2つの方法はどちらでもいいですが、どちらも使ってはいけません.