此段代码仅仅用来验证解析json的过程
/**
*-----------------------------------------------------------------------------
* @ Copyright(c) 2006~2012 d. All Rights Reserved.
*-----------------------------------------------------------------------------
* FILE NAME : TestJSON.java
* DESCRIPTION :
* PRINCIPAL AUTHOR : Project Team
* SYSTEM NAME : 1222
* MODULE NAME : xxxx
* LANGUAGE : Java
* DATE OF FIRST RELEASE :
*-----------------------------------------------------------------------------
* @ Created on 2010-11-2
* @ Release 1.0.0.0
* @ Version 1.0
* -----------------------------------------------------------------------------------
* Date Author Version Description
* -----------------------------------------------------------------------------------
* 2010-11-2 xxxxxxx 1.0 Initial Create
* -----------------------------------------------------------------------------------
*/
package json;
import java.util.Set;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
public class TestJSON
{
/**
* @param args
*/
public static void main(String[] args)
{
/**
* JSON消息体,"jsonText"标签可能存在,也可能不存在
* {jsonText:{userName:[{liu:\"maomao\"},{hu:\"mimi\"}],sex:\"male\",age:\"23\"}}
*/
String textJson = args[0];
try
{
//通过JSONObject类的fromObject方法解析json格式的消息成JSONObject对象
JSONObject jsonObject = JSONObject.fromObject(textJson);
//如果消息体中含有jsonText,需要根据标签取到后面的消息:{userName:\"nihao\",sex:\"male\",age:\"23\"}
if (null != jsonObject.get("jsonText"))
{
jsonObject = jsonObject.getJSONObject("jsonText");
}
//判断userName标签是否存在
if (jsonObject.containsKey("userName"))
{
//如果标签存在,进一步判断userName是否为数组
if (jsonObject.get("userName").toString().contains("[")
&& jsonObject.get("userName").toString().contains("]"))
{
JSONArray jsonArray = jsonObject.getJSONArray("userName");
//遍历json中的数组
for (int i = 0; i < jsonArray.size(); i++)
{
//此时tmp封装的消息例如:{"liu":"maomao"}
JSONObject tmp = jsonArray.getJSONObject(i);
Set<String> keySet = tmp.keySet();
//通过判断set的大小,观察数组元素是否只封装了一条信息。特例情况比如:{"liu":"maomao","wang":"word"}
if (keySet.size() > 1)
{
System.out.println("fault");
}
for (String key : keySet)
{
if ("liu".equals(key))
{
//取出数组中key对应的值
System.out.println(tmp.getString("liu"));
}
if ("hu".equals(key))
{
System.out.println(tmp.getString("hu"));
}
}
}
}
}
}
catch (Exception e)
{
e.printStackTrace();
}
}
}