`

json串多了<pre>标签,ext报错

    博客分类:
  • ext
 
阅读更多
1.返回的json串前面多出了<pre style="word-wrap: break-word; .....></pre>的东西,导致转js对象时报错,查看后台也没见到添加<pre>标签,应该是浏览器添加的。
解决办法,把response的contentType设置为text/html即可:
this.getResponse().setContentType("text/html;charset=UTF-8");
Content-Type对浏览器解析的一些影响

    当为web服务器输出的内容指定Content-Type为text/html时,浏览器会对内容做一些额外的转换工作,比如"&#34;"这样的实体形式就会被替换成最终的字符(双引号")。这在普通情况下并不会引起什么问题,但是不幸的是如果你采用了JSON格式来传输数据,例如:{status:0;data:"content&#34;data"}这样的格式,当&#34;被替换成"后,Javascript就会得到一个错误的数据格式,因为这时候Javascript拿到的数据就变成了{status:0;data:"content"data"}。

    这时候,你可以设置Content-Type为text/x-json来解决此问题,但是text/x-json有可能引起一些浏览器兼容性上的问题(一些浏览器会提示下载Content-Type为text/x-json的内容),而更好的做法就是设置Content-Type为text/plain。不过即使这样也并没有完美的解决问题,考虑这样一种情况,你需要上传文件但是你并不想刷新上传页面,这时候一般的做法就是让form的target指向一个Iframe,代码如下:
    <form target="iframeId" method="post" action="accept.php"><input type="file" /></form>
    当accept.php接收请求并处理完成返回一段JSON数据后问题就发生了,因为accept.php输出的内容被定向到了iframe,而在iframe里浏览器会自动地给数据上加上<pre>标记,这时候JSON又出现格式错误了。

    最终的解决方法就是,在JSON传输时指定Content-Type为text/plain,但是遇到上面提的文件上传情况,就应该指定Content-Type为text/html。

分享到:
评论

相关推荐

    list转化成JSON字符串

    可将list&lt;T&gt;转化成JSON字符串 使用方法 例: List&lt;自定义类&gt; l; ListChangeToJson.ListChangeToJson classJson = new ListChangeToJson.ListChangeToJson(); classJson.ArrayToJsonAll(l, "数组名字");

    C# 解析json格式数据为IList

    `JsonConvert.DeserializeObject&lt;T&gt;(string json)`方法会将JSON字符串转换为指定类型的对象。在这个例子中,T是`IList&lt;User&gt;`。 4. 现在,`users`变量就是一个IList&lt;User&gt;实例,你可以像操作任何其他C#集合一样...

    List转Json

    在Java中,有很多库可以帮助我们实现`List&lt;Object&gt;`到JSON的转换,例如Gson、Jackson、org.json等。这里我们将主要讨论Jackson库,因为它非常流行且功能强大。 3. **Jackson库介绍**: Jackson是 FasterXML 组织...

    Json与实体相互转换,支持IList泛型

    Json转换为实体;Json转换为IList&lt;T&gt;;实体转换为Json;IList&lt;T&gt;转换为Json;

    maven中 引入jar报错:Missing artifact net.sf.json-lib:json-lib:jar:2.4

    &lt;dependency&gt; &lt;groupId&gt;net.sf.json-lib&lt;/groupId&gt; &lt;artifactId&gt;json-lib&lt;/artifactId&gt; &lt;version&gt;2.4&lt;/version&gt; &lt;classifier&gt;jdk15&lt;/classifier&gt; &lt;/dependency&gt; 或者直接下载这个包

    json字符串转成 Map/List

    List&lt;Map&lt;String, Object&gt;&gt; list = new ArrayList&lt;&gt;(); for (int i = 0; i &lt; jsonArray.length(); i++) { JSONObject obj = jsonArray.getJSONObject(i); Map&lt;String, Object&gt; itemMap = new HashMap&lt;&gt;(); for ...

    json字符串实体bean或者List互转(gson和jackson,支持泛型)

    json字符串实体bean或者List&lt;bean&gt;互转(gson和jackson,支持泛型),支持json的格式化,所需要的包在代码也有说明。还有少的可以告知我,谢谢

    Json解析简单数据<二>

    DataContainer&lt;Person&gt; dataContainer = gson.fromJson(jsonString, type); for (Person person : dataContainer.getList()) { System.out.println(person.getName() + ", " + person.getAge()); } } } ``` ...

    StringtoList和StringtoMap和StringtoObject和StringtoArray

    List&lt;String&gt; list = new ArrayList&lt;&gt;(); for (int i = 0; i &lt; jsonArray.length(); i++) { list.add(jsonArray.getString(i)); } ``` 或使用Gson库: ```java String jsonString = "[\"Apple\", \"Banana\...

    Json序列化与反序列化方法封装类

    public static string GetJson&lt;T&gt;(List&lt;T&gt; model) where T : new() { return new JavaScriptSerializer().Serialize(model); } /// &lt;summary&gt; /// 反序列化Json为模型对象 /// &lt;/summary&gt; /// &lt;typeparam ...

    jsonrpc4j+springboot+maven实例

    &lt;artifactId&gt;jsonrpc4j&lt;/artifactId&gt; &lt;version&gt;1.5.0&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;javax.portlet&lt;/groupId&gt; &lt;artifactId&gt;portlet-api&lt;/artifactId&gt; &lt;version&gt;2.0&lt;/version&gt; &lt;/dependency...

    ajax 返回值自动添加pre标签的解决方法

    在使用AJAX进行数据交互时,可能会遇到一些问题,比如返回值被自动包裹在`&lt;pre&gt;`标签中的情况。这个问题通常与返回的数据格式和浏览器的默认解析行为有关。 `&lt;pre&gt;`标签在HTML中用于定义预格式化的文本,它会保留...

    ajaxFileUpload插件,C#返回Json数据报错问题的解决方案

    ajaxFileUpload插件在尝试使用`eval`函数将数据转化为JSON对象时,由于`&lt;pre&gt;`标签的存在,导致解析失败。解决这个问题的方法是先去除`&lt;pre&gt;`标签,然后用`eval`函数处理数据。有两种不同的JavaScript实现方式: **...

    JSON数据转字符串

    自动把JSon数据转化为字符串,下面附示例代码: &lt;!doctype html&gt; &lt;html&gt; &lt;body&gt; &lt;script src="json2.js"&gt;&lt;/script&gt; &lt;script&gt; var obj={a:[2,3],b:{m:[3,4],n:2} }; var jsonStr = JSON.stringify( obj ); alert...

    java jsonto对象互转

    public static &lt;T&gt; List&lt;T&gt; jsonToList(String jsonString, Class&lt;T&gt; pojoClass, String dataFormat) { JsonConfig jsonConfig = configJson(dataFormat); JSONArray jsonArray = JSONArray.fromObject(json...

    joy:Joy是Jakarta JSON处理API(JSON-P)的又一个实现。

    喜悦 Joy是 (JSON-P)的另一种实现。 主要特征 完全符合的最新规范。... &lt; groupId&gt;jakarta.json&lt;/ groupId&gt; &lt; artifactId&gt;jakarta.json-api&lt;/ artifactId&gt; &lt; version&gt;2.0.0&lt;/ version&gt; &lt;/ dependency&gt; &lt; de

    C# json 转hashtable

    var hashtable = JsonConvert.DeserializeObject&lt;Hashtable&gt;(jsonString); ``` 描述中提到的“或者把hashtable转为json字符”指的是将`Hashtable`对象序列化为JSON字符串。同样,我们可以使用上述两个库来完成。 3...

    解析Json字符串直接转换为对象(包括多层List集合 嵌套)所用jar包

    &lt;artifactId&gt;jackson-databind&lt;/artifactId&gt; &lt;version&gt;2.13.1&lt;/version&gt; &lt;/dependency&gt; ``` 接下来,我们创建对应的Java类来表示JSON中的结构。假设我们有一个如下的JSON字符串: ```json { "name": "John", ...

    List<Bean>转JasonStringer

    List&lt;PersonBean&gt; personList = new ArrayList&lt;&gt;(); //... 填充personList Gson gson = new Gson(); String jsonString = gson.toJson(personList); ``` 在上面的代码中,`gson.toJson()`方法接收一个Java对象并将...

    Jquery通过JSON字符串创建JSON对象

    &lt;h2&gt;通过 JSON 字符串来创建对象&lt;/h3&gt; &lt;p&gt; First Name: &lt;span id=fname&gt;&lt;/span&gt;&lt;br&gt; Last Name: &lt;span id=lname&gt;&lt;/span&gt;&lt;br&gt; &lt;/p&gt; [removed] //txt为字符串 var txt = '{employees:[' + '{firstName:Bill,lastName:...

Global site tag (gtag.js) - Google Analytics