tinguo002

 

java FTP Linux系统下 文件上传下载

     摘要: http://www.blogjava.net/parable-myth/archive/2008/05/16/200879.html Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->import java.io.Fil...  阅读全文

posted @ 2014-04-10 18:42 一堣而安 阅读(744) | 评论 (0)编辑 收藏

sun.net.ftp异常 PORT 192,168,0,80,9,205: 550 Permission denied.

sun.net.ftp异常 PORT 192,168,0,80,9,205: 550 Permission denied.

我使用sun.net.ftp来连接linux的vsftp时,出现如下的异常(在windows下是没有的)

 

 

java.io.FileNotFoundException: PORT 192,168,0,80,9,205: 550 Permission denied.

 

at sun.net.ftp.FtpClient.readReply(FtpClient.java:236)

at sun.net.ftp.FtpClient.issueCommand(FtpClient.java:193)

at sun.net.ftp.FtpClient.openDataConnection(FtpClient.java:434)

at sun.net.ftp.FtpClient.put(FtpClient.java:594)

at org.lab24.util.FtpTool.processfile(FtpTool.java:193)

at org.lab24.util.FtpTool.upload(FtpTool.java:116)

at org.lab24.spider.Spider.run(Spider.java:55)

at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:743)

at java.lang.Thread.run(Thread.java:619)

exception e in ftp upload(): java.io.FileNotFoundException: PORT 192,168,0,80,9,205: 550 Permission denied.

 

后来查过网上的解决方案,才知道:

该类默认使用的是Port模式传输数据,但实际上Linux配的是Pasv模式,所以传不过去,修改办法:

 

ftpclient.sendServer("quote PASV");
设置一下传输模式就可以传了。

posted @ 2014-04-10 14:19 一堣而安 阅读(1511) | 评论 (0)编辑 收藏

避免HttpClient的”SSLPeerUnverifiedException: peer not authenticated”异常

/**解决办法**
* 1添加一个方法
* 2调用这个方法生成一个新的httpClient对象
**/



import java.security.SecureRandom;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;

import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;

import org.apache.http.client.HttpClient;
import org.apache.http.conn.ClientConnectionManager;
import org.apache.http.conn.scheme.Scheme;
import org.apache.http.conn.scheme.SchemeRegistry;
import org.apache.http.conn.ssl.SSLSocketFactory;
import org.apache.http.impl.client.DefaultHttpClient;

public class HttpUtils
{
    
private HttpClient httpClient;
    
public HttpUtils()
    
{
        httpClient 
= null;
    }


    
public void openConnection()
    
{
        httpClient 
= new DefaultHttpClient();
      
  httpClient = getSecuredHttpClient(httpClient
    });
        


    
    
/**
     * 避免HttpClient的”SSLPeerUnverifiedException: peer not authenticated”异常
     * 不用导入SSL证书
     * 
     * 
@author shipengzhi(shipengzhi@sogou-inc.com)
     * 
     
*/

    
private static DefaultHttpClient getSecuredHttpClient(HttpClient httpClient) {
        
final X509Certificate[] _AcceptedIssuers = new X509Certificate[] {};
        
try {
            SSLContext ctx 
= SSLContext.getInstance("TLS");
            X509TrustManager tm 
= new X509TrustManager() {
                @Override
                
public X509Certificate[] getAcceptedIssuers() {
                    
return _AcceptedIssuers;
                }


                @Override
                
public void checkServerTrusted(X509Certificate[] chain,
                        String authType) 
throws CertificateException {
                }


                @Override
                
public void checkClientTrusted(X509Certificate[] chain,
                        String authType) 
throws CertificateException {
                }

            }
;
            ctx.init(
nullnew TrustManager[] { tm }new SecureRandom());
            SSLSocketFactory ssf 
= new SSLSocketFactory(ctx,
                    SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
            ClientConnectionManager ccm 
= httpClient.getConnectionManager();
            SchemeRegistry sr 
= ccm.getSchemeRegistry();
            sr.register(
new Scheme("https"443, ssf));
            
return new DefaultHttpClient(ccm, httpClient.getParams());
        }
 catch (Exception e) {
            System.out.println(
"=====:=====");
            e.printStackTrace();
        }

        
return null;
    }

}

posted @ 2014-04-09 17:34 一堣而安 阅读(975) | 评论 (0)编辑 收藏

string类型转为double 值变化了


http://zhidao.baidu.com/link?url=NeIRa5raPCZw7sR2DR1hzNk8aewMuNdDCNJ83qRMMWWfXaPVct7rWqVNWZnfkQAroEzRvKn5XxK4rK1lWEl2-_

精度的问题!用基本类型的double类型进行运算可能会丢失精度。而且特别大的数又没法处理。所以如果用BigDecimal这个类问题就解决了。这个类在java.Math包下。它可以处理任意精度的数据。对于楼主出现的问题,我从新写了段代码,供楼主参考。但是主要是还得查看API!代码如下:

import java.math.*;

public class oopp

{

 public static void 搜索main(String[] args)

 {

  String a="1467000000";

  double aa=Double.parseDouble(a);

  BigDecimal beichushu=new BigDecimal(aa);

  BigDecimal chushu=new BigDecimal(100000000);

  BigDecimal result=beichushu.divide(chushu,new MathContext(4));//MathConText(4)表示结果精确4位!

  boolean isTrue=String.valueOf(result).equals("14.67");

  System.out.println("1467000000除以100000000="+result);

  System.out.println(result+"与14.67比较的结果是"+isTrue);

 }

}



posted @ 2014-04-04 14:39 一堣而安 阅读(718) | 评论 (0)编辑 收藏

Tomcat启动时一闪而过,看不到错误信息

http://blog.163.com/kangle0925@126/blog/static/277581982011926102830712/

有时Tomcat的启动窗口一闪而过,根本就看不出启动过程中发生了什么错误。这中间的原因有好多种,最常见的解决办法就是使用run命令,打开startup.bat文件,找到下面这行:

call "%EXECUTABLE%" start %CMD_LINE_ARGS%

修改为:

call "%EXECUTABLE%" run %CMD_LINE_ARGS%

这样,Tomcat启动时就不会弹出新窗口,就可以从容不迫地观察这的启动错误了。

修改文件后:需要从DOS命令行窗口进入到%TOMCAT_HOME%\bin路径下,然后启动startup.bat文件。

 

 Tomcat启动时一闪而过,看不多错误信息 - Sky - Sky的博客

posted @ 2014-04-04 14:21 一堣而安 阅读(1752) | 评论 (0)编辑 收藏

java日期

http://blog.csdn.net/liwenfeng1022/article/details/6534176

//字符串日期加1天
       String sgrq = "20140101";
       SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd");
       try {
         Date d = formatter.parse(sgrq);
         String qxrq = formatter.format(d.getTime() + (1 * 24 * 60 * 60 * 1000));
       } catch (ParseException e) {      
         e.printStackTrace();
       }


1.用java.util.Calender来实现

   Calendar calendar=Calendar.getInstance();  
   calendar.setTime(new Date());
   System.out.println(calendar.get(Calendar.DAY_OF_MONTH));//今天的日期
   calendar.set(Calendar.DAY_OF_MONTH,calendar.get(Calendar.DAY_OF_MONTH)+1);//让日期加1  
   System.out.println(calendar.get(Calendar.DATE));//加1之后的日期Top
===============================================================================

2.用java.text.SimpleDateFormat和java.util.Date来实现
          
    Date d=new Date();  
   SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");  
   System.out.println("今天的日期:"+df.format(d));  
   System.out.println("两天前的日期:" + df.format(new Date(d.getTime() - 2 * 24 * 60 * 60 * 1000)));  
   System.out.println("三天后的日期:" + df.format(new Date(d.getTime() + 3 * 24 * 60 * 60 * 1000)));

===============================================================================

GregorianCalendar gc=new GregorianCalendar();
gc.setTime(new Date);
gc.add(field,value);
value为正则往后,为负则往前
field取1加1年,取2加半年,取3加一季度,取4加一周
取5加一天....

===============================================================================

/*
*java中对日期的加减操作
*gc.add(1,-1)表示年份减一.
*gc.add(2,-1)表示月份减一.
*gc.add(3.-1)表示周减一.
*gc.add(5,-1)表示天减一.
*以此类推应该可以精确的毫秒吧.没有再试.大家可以试试.
*GregorianCalendar类的add(int field,int amount)方法表示年月日加减.
*field参数表示年,月.日等.
*amount参数表示要加减的数量.
*
* UseDate.java 测试如下:
*/
package temp.util;

import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.text.SimpleDateFormat;
public class UseDate {

Date d=new Date();
GregorianCalendar gc =new GregorianCalendar();
SimpleDateFormat sf  =new SimpleDateFormat("yyyy-MM-dd");

public String getYears()
{
gc.setTime(d);
gc.add(1,+1);
gc.set(gc.get(Calendar.YEAR),gc.get(Calendar.MONTH),gc.get(Calendar.DATE));

return sf.format(gc.getTime());
}

public String getHalfYear()
{
gc.setTime(d);
gc.add(2,+6);
gc.set(gc.get(Calendar.YEAR),gc.get(Calendar.MONTH),gc.get(Calendar.DATE));

return sf.format(gc.getTime());
}
public String getQuarters()
{
gc.setTime(d);
gc.add(2,+3);
gc.set(gc.get(Calendar.YEAR),gc.get(Calendar.MONTH),gc.get(Calendar.DATE));

return sf.format(gc.getTime());
}

public String getLocalDate()
{
return sf.format(d);
}


public static  void  main(String[] args)
{
UseDate ud= new UseDate();
System.out.println(ud.getLocalDate());
System.out.println(ud.getYears());
System.out.println(ud.getHalfYear());
System.out.println(ud.getQuarters());
}

}
    //当月第一天和最后一天

     SimpleDateFormat sf  =new SimpleDateFormat("yyyyMMdd");
     Calendar a=Calendar.getInstance();
     int MaxDate=a.get(Calendar.DATE);
     System.out.println("该月最大天数:"+MaxDate+","+sf.format(a.getTime()));
     a.set(Calendar.DATE, 1);//把日期设置为当月第一天 
     System.out.println("当月第一天:"+sf.format(a.getTime())); 
     a.roll(Calendar.DATE, -1);//日期回滚一天,也就是最后一天

     System.out.println("当月最后一天:"+sf.format(a.getTime())); 

4 ,

GregorianCalendar gc=new GregorianCalendar();
       
        try {
            gc.setTime( new SimpleDateFormat("yyyyMM").parse("200901"));
            gc.add(2, -Integer.parseInt("7"));
        } catch (ParseException e) {
            // TODO 自動生成された catch ブロック
            e.printStackTrace();
        }
        System.out.println(new SimpleDateFormat("yyyyMM").format(gc.getTime()));

运行结果:200806

posted @ 2014-03-18 21:01 一堣而安 阅读(183) | 评论 (0)编辑 收藏

jQuery on

$(document).on("click","#flex1 tbody tr",function(){alert("The paragraph was clicked.");});

posted @ 2014-03-15 17:00 一堣而安 阅读(184) | 评论 (0)编辑 收藏

JSON.stringify 语法实例讲解

详细出处参考:http://www.jb51.net/article/29893.htm
认识javascript也不短的时间了,可是这个用法说实在的,我还是第一次见过,惭愧啊惭愧啊。于是乎,在网上找了写资料,写了些例子 希望能给园子们一些帮助。 
作用:这个函数的作用主要是为了系列化对象的。 
可能有些人对系列化这个词过敏,我的理解很简单。就是说把原来是对象的类型转换成字符串类型(或者更确切的说是json类型的)。就这么简单。打个比方说,你有一个类,那么你可以通过这个方法转换成相应的json类型的。很简单吧。 
接着看。 
语法: 
JSON.stringify(value [, replacer] [, space]) 
value:是必须要的字段。就是你输入的对象,比如数组啊,类啊等等。 
replacer:这个是可选的。它又分为2种方式,一种是方法,第二种是数组。 
情况一:我们先说数据,通过我们后面的实验可以知道,它是和第一个有关系的。一般来说,我们系列化后的结果是通过键值对来进行表示的。 
比如说: 
name:"lan",age:25 
这种形式。 
所以,如果这种形式的话,如果第二个的值在第一个存在,那么的话就以第二个的值做key,第一个值为value进行表示,如果不存在,sorry,忽略。【是不是有点抽象,我也这么觉得,不过你等一下看实验 就OK了。。呼呼。】 
情况二:如果是方法,那很简单,就是说把系列化后的每一个对象(记住 是每一个)传进方法里面进行处理。 
space:很好理解,用什么来做分隔符的。 
1.如果省略的话,那么显示出来的值 就没有分隔符。直接输出来 
2.如果是一个数字的话,那么它就定义缩进几个字符,当然 如果大于10 ,则最大值为10. 
3.如果是一些转义字符,比如“\t”,表示回车,那么它每行一个回车。 
4.如果仅仅是字符串,OK,就在每行输出值的时候把这些字符串附加上去就OK。当然,最大长度也是10个字符。 
开始用实例说明; 
1.只有一个参数的情况下: 
复制代码 代码如下:
var student = new Object(); 
student.name = "Lanny"; 
student.age = "25"; 
student.location = "China"; 
var json = JSON.stringify(student); 
alert(student); 
结果如下: 
有些人可能会怀疑JSON.stringify的作用,OK。那假如,我们不要这个函数。代码下面的样子: 
复制代码 代码如下:
var student = new Object(); 
student.name = "Lanny"; 
student.age = "25"; 
student.location = "China"; 
// var json = JSON.stringify(student); 
alert(student); 
 恭喜你 得到的结果是: 
没骗你吧,继续。
2.第二个参数存在,并且第二个参数还是function的时候 
复制代码 代码如下:
var students = new Array() ; 
students[0] = "Lanny"; 
students[1] = "dong"; 
students[2] = "I love you"; 
var json = JSON.stringify(students,switchUpper); 
function switchUpper(key, value) { 
return value.toString().toUpperCase(); 
alert(json); 
        //var json = JSON.stringify(students, function (key,value) { 
        //return value.toString().toUpperCase(); 
       //}); 
    上面的方法也可以换成下面的,2个都是一样,只是写法有那么一点点的不一样而已。 
 得到结果如下: 
3.第二个参数存在,并且第二个参数不是function,而是数组的时候。 
3.1 【误区】如果第一个参数是数组,第二个参数也是数组的话,只显示第一个参数的值。 
比如: 
复制代码 代码如下:
var students = new Array() ; 
students[0] = "Lanny"; 
students[1] = "dong"; 
students[2] = "I love you"; 
var stu = new Array(); 
stu[0] = "1"; 
stu[1] = "2"; 
var json = JSON.stringify(students,stu); 
alert(json); 
 sorry 得到的结果就是: 
第二个被忽略了,只是第一个被系列化了。 
3.2 如果第一个是对象(这里说的对象就像在C#里面可以进行new的),第二个是数组的。 
那么如果第二个的value在第一个存在,那么的话就以第二个的值做key,第一个值为value进行表示 
复制代码 代码如下:
var student = new Object(); 
student.qq = "5485891512"; 
student.name = "Lanny"; 
student.age = 25; 
var stu = new Array(); 
stu[0] = "qq"; 
stu[1] = "age"; 
stu[2] = "Hi";//这个student对象里不存在。 
var json = JSON.stringify(student,stu); 
alert(json); 
 得到的结果如下: 
因为stu[2] = "Hi";这个Hi 在第一个找不到,所以就不进行显示了。 
4.第三个参数 
4.1.如果省略的话,那么显示出来的值 就没有分隔符。直接输出来 
比如: 
复制代码 代码如下:
var student = new Object(); 
student.qq = "5485891512"; 
student.name = "Lanny"; 
student.age = 25; 
var stu = new Array(); 
stu[0] = "qq"; 
stu[1] = "age"; 
stu[2] = "Hi"; 
var json = JSON.stringify(student,stu); 
alert(json); 
 输出的就是: 
4.2.如果是一个数字的话,那么它就定义缩进几个字符,当然 如果大于10 ,则最大值为10. 
复制代码 代码如下:
var student = new Object(); 
student.qq = "5485891512"; 
student.name = "Lanny"; 
student.age = 25; 
var stu = new Array(); 
stu[0] = "qq"; 
stu[1] = "age"; 
stu[2] = "Hi"; 
var json = JSON.stringify(student,stu,100);//注意这里的100 
alert(json); 
那么得到的是: 
空开来了10个字符。 
4.3.如果是一些转义字符,比如“\t”,表示回车,那么它每行一个回车。 
也是一样。 
4.4.如果仅仅是字符串,OK,就在每行输出值的时候把这些字符串附加上去就OK。当然,最大长度也是10个字符。 
如果是var json = JSON.stringify(student,stu,“HaiKou”);// 
就这样吧 。good night。 
详细出处参考:http://www.jb51.net/article/29893.htm

posted @ 2014-02-27 23:50 一堣而安 阅读(226) | 评论 (0)编辑 收藏

JSONObject put,accumulate,element的区别

public Object put (Object key, Object value) 将value映射到key下。如果此JSONObject对象之前存在一个value在这个key下,当前的value会替换掉之前的value
Associates the specified value with the specified key in this map(optional operation). If the map previously contained . a mapping for this key, the old value is replaced by the specified value. (A map m is said to contain a mapping for a key k if and only if m.containsKey(k) would return true .))
public JSONObject accumulate (String key, Object value) 累积value到这个key下。这个方法同element()方法类似,特殊的是,如果当前已经存在一个value在这个key下那么一个JSONArray将会存储在这个key下来保存所有累积的value。如果已经存在一个JSONArray,那么当前的value就会添加到这个JSONArray中
。相比之下replace方法会替代先前的value
Accumulate values under a key. It is similar to the element method except that if there is already an object stored 
under the key then a JSONArray is stored under the key to hold all of the accumulated values. If there is already a 
JSONArray, then the new value is appended to it. In contrast, the replace method replaces the previous value.
public JSONObject element (String key, Object value) 将键/值对放到这个JSONObject对象里面。如果当前value为空(null),那么如果这个key存在的话,这个key就会移除掉。如果这
个key之前有value值,那么此方法会调用accumulate()方法。
Put a key/value pair in the JSONObject. If the value is null, then the key will be removed from the JSONObject if it is 
present. If there is a previous value assigned to the key, it will call accumulate.

转载:http://ljhzzyx.blog.163.com/blog/static/3838031220126810430157/

posted @ 2014-02-27 23:24 一堣而安 阅读(990) | 评论 (0)编辑 收藏

JSONObject对象使用


JSON net.sf.json

1.JAR包简介

要使程序可以运行必须引入JSON-lib包,JSON-lib包同时依赖于以下的JAR包:

  1. commons-lang.jar
  2. commons-beanutils.jar
  3. commons-collections.jar
  4. commons-logging.jar 
  5. ezmorph.jar
  6. json-lib-2.2.2-jdk15.jar

2.JSONObject对象使用

JSON-lib包是一个beans,collections,maps,java arrays 和XML和JSON互相转换的包。在本例中,我们将使用JSONObject类创建JSONObject对象,然后我们打印这些对象的值。为了使用 JSONObject对象,我们要引入"net.sf.json"包。为了给对象添加元素,我们要使用put()方法。

2.1.实例1

 package jsontest;


import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

public class JSONObjectSample {

    // 创建JSONObject对象
    private static JSONObject createJSONObject() {
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("username", "huangwuyi");
        jsonObject.put("sex", "男");
        jsonObject.put("QQ", "413425430");
        jsonObject.put("Min.score", new Integer(99));
        jsonObject.put("nickname", "梦中心境");
        return jsonObject;
    }

    public static void main(String[] args) {
        JSONObject jsonObject = JSONObjectSample.createJSONObject();//静待方法,直接通过类名+方法调用
        
// 输出jsonobject对象
        System.out.println("jsonObject:" + jsonObject);

        // 判读输出对象的类型
        boolean isArray = jsonObject.isArray();
        boolean isEmpty = jsonObject.isEmpty();
        boolean isNullObject = jsonObject.isNullObject();
        System.out.println("是否为数组:" + isArray + ", 是否为空:" + isEmpty
                + ", isNullObject:" + isNullObject);

        // 添加属性,在jsonObject后面追加元素。
        jsonObject.element("address", "福建省厦门市");
        System.out.println("添加属性后的对象:" + jsonObject);

        // 返回一个JSONArray对象
        JSONArray jsonArray = new JSONArray();
        jsonArray.add(0, "this is a jsonArray value");
        jsonArray.add(1, "another jsonArray value");
        jsonObject.element("jsonArray", jsonArray);
        //在jsonObject后面住家一个jsonArray
        JSONArray array = jsonObject.getJSONArray("jsonArray");
        System.out.println(jsonObject);
        
        
        System.out.println("返回一个JSONArray对象:" + array);
        // 添加JSONArray后的值
        
// {"username":"huangwuyi","sex":"男","QQ":"413425430","Min.score":99,"nickname":"梦中心境","address":"福建省厦门市","jsonArray":["this is a jsonArray value","another jsonArray value"]}
        System.out.println("结果=" + jsonObject);

        // 根据key返回一个字符串
        String username = jsonObject.getString("username");
        System.out.println("username==>" + username);

        // 把字符转换为 JSONObject
        String temp = jsonObject.toString();
        JSONObject object = JSONObject.fromObject(temp);
        // 转换后根据Key返回值
        System.out.println("qq=" + object.get("QQ"));

    }

}

输出结果

jsonObject:{"username":"huangwuyi","sex":"男","QQ":"413425430","Min.score":99,"nickname":"梦中心境"}
是否为数组:false, 是否为空:false, isNullObject:false
添加属性后的对象:{"username":"huangwuyi","sex":"男","QQ":"413425430","Min.score":99,"nickname":"梦中心境","address":"福建省厦门市"}
{"username":"huangwuyi","sex":"男","QQ":"413425430","Min.score":99,"nickname":"梦中心境","address":"福建省厦门市","jsonArray":["this is a jsonArray value","another jsonArray value"]}
返回一个JSONArray对象:["this is a jsonArray value","another jsonArray value"]
结果={"username":"huangwuyi","sex":"男","QQ":"413425430","Min.score":99,"nickname":"梦中心境","address":"福建省厦门市","jsonArray":["this is a jsonArray value","another jsonArray value"]}
username==>huangwuyi
qq=413425430

2.2.实例2.

package jsontest;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

public class JSONTest {
    public static void main(String args[])
    {
        JSONObject jsonObj0  = new JSONObject();
        JSONObject jsonObj  = new JSONObject();
        JSONObject jsonObj2  = new JSONObject();
        JSONObject jsonObj3  = new JSONObject();
        JSONArray jsonArray = new JSONArray();
        
        //创建jsonObj0
        jsonObj0.put("name0", "zhangsan");
        jsonObj0.put("sex1", "female");
        System.out.println("jsonObj0:"+jsonObj0);
        
        //创建jsonObj1
        jsonObj.put("name", "xuwei");
        jsonObj.put("sex", "male");
        System.out.println("jsonObj:"+jsonObj);
    
        //创建jsonObj2,包含两个条目,条目内容分别为jsonObj0,jsonObj1
        jsonObj2.put("item0", jsonObj0);
        jsonObj2.put("item1", jsonObj);
        System.out.println("jsonObj2:"+jsonObj2);
        
        //创建jsonObj3,只有一个条目,内容为jsonObj2
        jsonObj3.element("j3", jsonObj2);
        System.out.println("jsonObj3:"+jsonObj3);
    
        //往JSONArray中添加JSONObject对象。发现JSONArray跟JSONObject的区别就是JSONArray比JSONObject多中括号[]
        jsonArray.add(jsonObj);
        System.out.println("jsonArray:"+jsonArray);
        
        JSONObject jsonObj4  = new JSONObject();
        jsonObj4.element("weather", jsonArray);
        System.out.println("jsonObj4:"+jsonObj4);
    }
}
输出结果:
jsonObj0:{"name0":"zhangsan","sex1":"female"}
jsonObj:{"name":"xuwei","sex":"male"}
jsonObj2:{"item0":{"name0":"zhangsan","sex1":"female"},"item1":{"name":"xuwei","sex":"male"}}
jsonObj3:{"j3":{"item0":{"name0":"zhangsan","sex1":"female"},"item1":{"name":"xuwei","sex":"male"}}}
jsonArray:[{"name":"xuwei","sex":"male"}]
jsonObj4:{"weather":[{"name":"xuwei","sex":"male"}]}


关于java bean的处理

创建java对象:

public class Address {
 private String road;
 private String streate;
 private String provience;
 private String no;
 public String getRoad() {
  return road;
 }
 public void setRoad(String road) {
  this.road = road;
 }
 public String getStreate() {
  return streate;
 }
 public void setStreate(String streate) {
  this.streate = streate;
 }
 public String getProvience() {
  return provience;
 }
 public void setProvience(String provience) {
  this.provience = provience;
 }
 public String getNo() {
  return no;
 }
 public void setNo(String no) {
  this.no = no;
 }
}

1.将json对象转化为java对象

 JSONObject jsonObject = JSONObject.fromObject("{\"no\":\"104\",\"provience\":\"陕西\",\"road\":\"高新路\",\"streate\":\"\"}");
  Address Address  = (Address) JSONObject.toBean(jsonObject,Address.class);
  log.info(Address.getNo());
  log.info(Address.getStreate());
  log.info(Address.getProvience());
  log.info(Address.getRoad());

 

2.将java对象转化为json对象

   将java对象转化为json对象:

    Address address = new Address();
    address.setNo("104");
    address.setProvience("陕西");
    address.setRoad("高新路");
    address.setStreate("");
    JSONArray json = JSONArray.fromObject(address);
    log.info(json.toString());

 

  将java对象list转化为json对象:

  Address address = new Address();
  address.setNo("104");
  address.setProvience("陕西");
  address.setRoad("高新路");
  address.setStreate("");
  Address address2 = new Address();
  address2.setNo("105");
  address2.setProvience("陕西");
  address2.setRoad("未央路");
  address2.setStreate("张办");
  List list = new ArrayList();
  list.add(address);
  list.add(address2);
  JSONArray json = JSONArray.fromObject(list);
  log.info(json.toString());

3.JSONArray转化为list

JSONObject jsonObject = JSONObject.fromObject("{\"no\":\"104\",\"provience\":\"陕西\",\"road\":\"高新路\",\"streate\":\"\"}");
  JSONArray jsonArray = new JSONArray();
  jsonArray.add("{\"no\":\"104\",\"provience\":\"陕西\",\"road\":\"高新路\",\"streate\":\"\"}");
  jsonArray.add("{\"no\":\"104\",\"provience\":\"陕西\",\"road\":\"高新路\",\"streate\":\"123\"}");
  Object object = JSONArray.toList(jsonArray,Address.class);

转载:http://www.cnblogs.com/hitwtx/articles/2468633.html

posted @ 2014-02-27 23:07 一堣而安 阅读(9697) | 评论 (0)编辑 收藏

仅列出标题
共17页: First 上一页 2 3 4 5 6 7 8 9 10 下一页 Last 

导航

统计

常用链接

留言簿(1)

随笔分类

随笔档案

收藏夹

搜索

最新评论

阅读排行榜

评论排行榜