- 浏览: 707740 次
- 来自: ...
文章分类
最新评论
-
ranguisheng:
可以加点注释,代码不便于阅读.
用java实现数据库连接池的一个简单示例 -
abcd880129:
这样写的话,还要用专门的下载工具,不然,只能下到一个为空的ex ...
ZK下载文件时,不在服务器生成文件直接下载 -
234369425:
同上,是20
java计算阶乘 -
CodeToMyLaw:
如果目录中含有中文呢?
[^\x00-\xff] 中文的 ...
js验证文件目录格式的正确性 -
yanzhoupuzhang:
加了,还是报那个错误!
org.apache.commons.dbcp.BasicDataSource的解决方法
转载:http://www.gold98.net/blog/article.asp?id=676
记得以前写过一篇关于生成json字符串的java类,因为用的比较少,所以也没有深究,最近学习EXT,在它的使用中也着重提到了json,于是决定好好学习一下,此外还有另外一个原因,那就是xml解析有时确实有点繁琐....
以前的java类是参考.net版的json类写出来的,我返回过json字符串,但一直没有发现其中的问题,今天在学习时终于发现原有的类中有一点小小的问题:
下面是修正后的java类:
类中本来有一个:_success、_error的,是一组标记,但感觉在实际中没什么很大的作用,于是在生成字符串时去掉了,在原有的类中,我没有把所有的键名都用双引号引起来,后来在解析时出了问题,于是都给加上了,此外,原来为了输出整齐好看,我故意加入了<br>,这算是一个致命错误了,在实际中根本不需要用alert输出整个json字符串对象的值的,而且那只是为了跟踪输出的一个特例而已,真是有点画蛇添足的味道...
下面我们结合数据库来写一个输出json字符串的jsp文件:
接下来我们用prototype实现ajax来测试结果:
记得以前写过一篇关于生成json字符串的java类,因为用的比较少,所以也没有深究,最近学习EXT,在它的使用中也着重提到了json,于是决定好好学习一下,此外还有另外一个原因,那就是xml解析有时确实有点繁琐....
以前的java类是参考.net版的json类写出来的,我返回过json字符串,但一直没有发现其中的问题,今天在学习时终于发现原有的类中有一点小小的问题:
下面是修正后的java类:
package com.zb.database.util; import java.util.ArrayList; public class Json { public static void main(String[] args) { } public String singleInfo=""; protected boolean _success=true; protected String _error=""; protected ArrayList arrData=new ArrayList(); protected ArrayList dataItem=new ArrayList(); public String getError() { return _error; } public void setError(String error) { if(!error.equals(""))this._success=false; this._error = error; } public boolean getSuccess() { return _success; } public void setSuccess(boolean success) { if(success) this._error=""; this._success = success; } public Json() { } public void reSet() { arrData.clear(); dataItem.clear(); } public void addItem(String name,String _value) { dataItem.add(name); dataItem.add(_value); } //一个数组添加完毕,一个新的数组开始 public void addItemOk() { arrData.add(dataItem); dataItem=new ArrayList(); } public String ToString() { StringBuilder sb=new StringBuilder(); sb.append("{"); sb.append("\"datas\":"); sb.append("["); int ad=arrData.size(); for(int i=0;i<ad;i++) { ArrayList arr=(ArrayList)(arrData.get(i)); sb.append("{"); int t=arr.size(); for(int j=0;j<t;j+=2) { if(j==t) break; sb.append("\""); sb.append(arr.get(j).toString()); sb.append("\""); sb.append(":"); sb.append("\""); sb.append(arr.get(j+1).toString()); sb.append("\""); if(j<t-2) sb.append(","); } sb.append("}"); if(i<ad-1) sb.append(","); } sb.append("]"); sb.append("}"); return sb.toString(); } }
类中本来有一个:_success、_error的,是一组标记,但感觉在实际中没什么很大的作用,于是在生成字符串时去掉了,在原有的类中,我没有把所有的键名都用双引号引起来,后来在解析时出了问题,于是都给加上了,此外,原来为了输出整齐好看,我故意加入了<br>,这算是一个致命错误了,在实际中根本不需要用alert输出整个json字符串对象的值的,而且那只是为了跟踪输出的一个特例而已,真是有点画蛇添足的味道...
下面我们结合数据库来写一个输出json字符串的jsp文件:
<%@ page language="java" pageEncoding="UTF-8"%> <%@ page import="com.zb.database.util.DB,java.sql.*,com.zb.database.util.Json" %> <% response.setContentType("text/html"); out.clear(); out.clearBuffer(); DB db=new DB(); Connection conn=db.getSQLConnection(); Statement st=conn.createStatement(); ResultSet rs=st.executeQuery("select * from product "); Json json=new Json(); json.reSet(); json.setSuccess(true); while(rs.next()) { json.addItem("a",(new Integer(rs.getInt(1))).toString()); json.addItem("b",rs.getString(2)); json.addItem("c",rs.getString(3)); json.addItem("d",(new Integer(rs.getInt(4))).toString()); json.addItem("e",rs.getDate(5).toString()); json.addItem("f",rs.getString(6)); json.addItemOk(); } out.println(json.ToString()); %>
接下来我们用prototype实现ajax来测试结果:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>prototype测试 ajax测试</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> </head> <script language="javascript" src="js/prototype.js"></script> <script> function sendRequest() { var url = "http://localhost:8088/json/testgetjson.jsp"; var mailAjax = new Ajax.Request( url, { method: 'get', onComplete: jsonResponse } ); } function jsonResponse(originalRequest) { var div=document.getElementById("getrequest"); var jsondiv=document.getElementById("jsondiv"); div.innerHTML= originalRequest.responseText; jsondiv.innerHTML = originalRequest.responseText.evalJSON(true).datas[0].a; } </script> <body> <div id="getrequest"> </div> <br><br> <div id="jsondiv">Ok </div> <input type="submit" name="smt" id="smt" value="发送请求" onclick="sendRequest()"> <br> </body> </html>
发表评论
-
Json,Gson,FastJson解析笔记
2015-06-13 17:31 908Json 1.将JavaBean转换成Json对象: pu ... -
String与InputStream互转的几种方法
2015-06-13 17:24 739/** * 利用BufferedReader ... -
Java压缩图片
2015-06-06 15:49 1113package com.yipai.ut ... -
HashMap的工作原理
2013-11-18 22:58 854本文由 ImportNew - 唐小娟 翻译自 Javarev ... -
一道多线程题目的解决方案
2013-08-03 17:24 810在iteye上看到的一道多线程的题目,参考了一下网友的实现,那 ... -
java socket 多线程网络传输多个文件
2013-06-25 14:57 876由于需要研究了下用 java socket 传输文件,由于需要 ... -
处理大数字
2011-04-30 13:40 1012/** * 处理大数字 * & ... -
生成随机数
2011-04-30 13:39 1238/** * 生成随机数 */ public cl ... -
转换数字的进制
2011-04-30 13:38 1316/** * * 转换数字的进制 */ pu ... -
数字的舍入
2011-04-30 13:37 1105/** * 数字的舍入 * */ publi ... -
格式化数字
2011-04-30 13:36 1166/** * 格式化数字的输出 * */ pu ... -
数字与其封装类之间的转换
2011-04-30 13:16 848/** * * 数字与其封装类之间的转换 * ... -
Adapter适配器模式
2011-04-24 21:38 873/** * Adapter适配器模式<br> ... -
Factory工厂模式
2011-04-24 21:36 898/** * 模式名称:工厂模式 * 模式特征:通过 ... -
Singleton单例模式
2011-04-24 21:35 994public class SingletonA { ... -
排序类
2011-04-24 20:38 1013/** * 定义数字排序的 ... -
方法和变量在继承时的覆盖与隐藏
2011-04-24 20:30 973public class Parent2 { // ... -
类的加载顺序
2011-04-24 20:27 861/** * 父类 * */ public ... -
自定义形状类(继承的运用)
2011-04-10 17:18 1122/** * * 自定义图形的基类 */ p ... -
myeclipse8.6 注册码
2011-04-10 14:17 1160package com.springemail; i ...
相关推荐
在Java中实现JSON字符串与Java对象互换的关键知识点包括以下几个方面: 1. 数据交换的必要性: 在Java开发中,经常需要与其他系统进行数据交互。常见的数据交换格式包括XML和JSON。与XML相比,JSON格式更轻量级,...
在文档中,我们可以看到使用json-lib将Java对象转换成JSON字符串的过程。文档中的示例代码同样创建了一个Java对象,并通过JSONUtil的serialize方法将其转换为JSON字符串。值得注意的是,在处理JSON数据时,如果Java...
“将json数据复制到页面源代码上就可以测试了”进一步说明了使用方法,用户只需将待验证的JSON字符串复制并粘贴到网页提供的输入框内,然后提交或者按下相应的按钮,系统就会自动分析JSON数据的语法结构,如果存在...
1. 检查并修正JSON字符串的格式。 2. 确保JSON字段类型与Java对象字段类型匹配,或者在解析时提供自定义的转换器。 3. 对于自定义类型,使用`TypeReference`指定类型信息,或者在字段上添加`@JSONField( deserialize...
`ObjectMapper`是databind模块的核心类,它可以将任何Java对象转换为JSON字符串,反之亦然。此外,`@JsonAutoDetect`、`@JsonInclude`、`@JsonTypeInfo`等高级注解也在此模块中,允许更复杂的类型处理和序列化配置。...
3. **序列化异常**:将Java对象转换为JSON字符串时,如果对象包含不可序列化的属性,也会引发异常。例如,自定义类没有实现`Serializable`接口,或者包含`transient`字段。解决方法是确保所有需要序列化的类都实现`...
然而,手动处理JSON字符串往往繁琐且易出错,这就催生了各种JSON解析和生成工具的出现。其中,"HiJson"是一款专为程序员打造的高效JSON辅助工具,它以其便捷实用的特点深受开发者喜爱。 HiJson 2.1.2_jdk64.exe 是...
Fastjson是一个性能很好的Java语言编写的JSON处理库,它可以很容易地将Java对象转化为JSON格式的字符串,或者将JSON字符串转化为Java对象。在本实例中,Fastjson被用来将Tree对象数组转化为JSON字符串。 代码实现的...
2. 创建二维码内容:确定要生成二维码的数据,可以是字符串、URL、JSON对象等。 3. 生成二维码:使用工具类中的方法,传入数据和设置参数(如二维码尺寸、纠错级别、背景色、前景色等)生成二维码图像。例如: ```...
- **错误检查**:在输入JSON字符串时,HiJson可以进行语法检查,指出潜在的错误,帮助用户及时修正。 - **复制与粘贴**:支持快速复制JSON数据到其他应用程序,或者从剪贴板粘贴JSON内容进行格式化。 - **跨平台...
3. 解析Json数据时,可以使用编程语言提供的Json解析函数,例如Python的`json.loads()`,将Json字符串转化为可操作的对象,然后遍历和提取所需字段。 三、数据清洗实战 1. 删除重复数据:使用哈希表或集合(如...
4. **字符串操作**:生成命令字符串时,会用到大量的字符串拼接和格式化技术,如使用模板字符串 (` `${}`) 或 `concat()` 方法。 5. **正则表达式**:用于验证用户输入,确保它们符合游戏命令的要求,比如限制字符...
这个List集合可能包含自定义对象,或者简单地是带有文件路径信息的字符串集合。 - 然后,后台代码需要将这个List集合放入request作用域中,以供JSP页面使用。这通常通过调用request.setAttribute方法实现。 - 在...
2. **文本类型**(字符和字符串):字符(char)存储单个字符,字符串(String)存储多个字符。 3. **整数类型**(byte、short、int、long):用于存储有符号整数,不同类型有不同的取值范围。 4. **浮点类型**...
在Servlet中,我们应使用PrintWriter输出流来构造一个正确的JSON字符串。例如,在doPost方法中,可以通过以下代码来设置响应内容: ```java PrintWriter out = response.getWriter(); String jsonStr = "{\"success...
此函数通过读取`App.Major`、`App.Minor`和`App.Revision`等属性来构造版本字符串。 #### 2. **利用编译器或构建工具自动生成** - 大多数现代编译器(如C++、Java等)支持在编译时自动插入版本信息到二进制文件中...
配置文件可以定义多种校验策略,包括基本类型的校验(如字符串长度、数字范围)、逻辑校验(如必填项、唯一性)、关联校验(如参照其他表的值)。通过这种方式,我们可以在导入数据前就发现并修正问题,避免对数据库...
jsoup支持CSS选择器,这意味着你可以像使用jQuery那样,通过简单的字符串表达式选取HTML中的特定部分。例如,`doc.select("div.title")`将选取所有类名为“title”的`<div>`元素。 **DOM操作** jsoup允许开发者对...
这里,`customerId`参数是一个包含逗号分隔的ID字符串,通过`substring`和`split`方法转换为整数数组`arr`,然后传递给服务层进行批量删除操作。 总结: 当在MyBatis中使用`DELETE IN`操作遇到只能删除第一条数据的...