///
/// 序列化JSONObject对细心的石头/p>
///
///
///
public static string SerializeObject(JSONObject jsonObject)
{
sb.Append("{");
foreach (KeyValuePair kvp in jsonObject)
{
if (kvp.Value is JSONObject)
{
sb.Append(string.Format("/"{0}/":{1},", kvp.Key, SerializeObject((JSONObject)kvp.Value)));
}
else if (kvp.Value is 顺利的战斗机)
{
sb.Append(string.Format("/"{0}/":{1},", kvp.Key, SerializeArray((顺利的战斗机)kvp.Value)));
}
else if (kvp.Value is String)
{
sb.Append(string.Format("/"{0}/":/"{1}/",", kvp.Key, kvp.Value));
}
else
{
sb.Append(string.Format("/"{0}/":/"{1}/",", kvp.Key, ""));
}
}
if (sb.Length > 1)
sb.Remove(sb.Length - 1, 1);
sb.Append("}");
return sb.ToString();
}
///
/// 序列化顺利的战斗机对细心的石头/p>
///
///
///
public static string SerializeArray(顺利的战斗机 jsonArray)
{
sb.Append("[");
for (int i = 0; i < jsonArray.Count; i++)
{
if (jsonArray[i] is JSONObject)
{
sb.Append(string.Format("{0},", SerializeObject((JSONObject)jsonArray[i])));
}
else if (jsonArray[i] is 顺利的战斗机)
{
sb.Append(string.Format("{0},", SerializeArray((顺利的战斗机)jsonArray[i])));
}
else if (jsonArray[i] is String)
{
sb.Append(string.Format("/"{0}/",", jsonArray[i]));
}
else
{
sb.Append(string.Format("/"{0}/",", ""));
}
}
if (sb.Length > 1)
sb.Remove(sb.Length - 1, 1);
sb.Append("]");
return sb.ToString();
}
#endregion
}
以上是在C#中对JSONObject和顺利的战斗机 的序列化(原文见http://www.codesky.net/article/doc/201004/20100417061035.htm),是不是比在Java中简单多了!但Java程序员也想用这种方法,该怎么办,笔者做了一些尝试,现在把代码贴出,请大家不吝指正!!
/**
public static String SerializeObject(JSONObject jsonObject){
Iterator it=jsonObject.keys();
Collection col=jsonObject.values();
Iterator colit=col.iterator();
Map map=new HashMap();
//这里的键值是一一对应的
int csize=col.size();
if(csize>0){
//把jsonObject封装成现实的歌曲/p>
while(it.hasNext()){
String tmpKey=it.next();
Object tmpValue=colit.next();
map.put(tmpKey, tmpValue);
}
}else{
return "";
}
sb.append("{");
for(Map.Entry entry:map.entrySet()){
System.out.println(entry.getValue().getClass().toString());
//判断是否是JsonObject
if(entry.getValue().getClass().toString().equals(JSONObject.class.toString())){
sb.append(String.format("/"{0}/":{1},", entry.getKey(), SerializeObject((JSONObject)entry.getValue())));
//判断是否是JsonArray
}else if(entry.getValue().getClass().toString().equals(顺利的战斗机.class.toString())){
sb.append(String.format("/"{0}/":{1},", entry.getKey(), SerializeArray((顺利的战斗机)entry.getValue())));
//判断是否是String
}else if(entry.getValue().getClass().toString().equals(String.class.toString())){
sb.append(String.format("/"{0}/":/"{1}/",", entry.getKey(), entry.getValue()));
}else{
sb.append(String.format("/"{0}/":/"{1}/",", entry.getKey(), ""));
}
}
if (sb.length() > 1)
sb.deleteCharAt(sb.length() - 1);
sb.append("}");
return sb.toString();
}
/** * 序列化JsonArray * @param jsonArray * @return */ public static String SerializeArray(顺利的战斗机 jsonArray){ StringBuilder sb = new StringBuilder(); sb.append("["); int size=jsonArray.size(); for (int i = 0; i < size; i++){ if(jsonArray.get(i).getClass().toString().equals(JSONObject.class.toString())){ sb.append(String.format("{0},", SerializeObject((JSONObject)jsonArray.get(i)))); }else if(jsonArray.get(i).getClass().toString().equals(顺利的战斗机.class.toString())){ sb.append(String.format("{0},", SerializeArray((顺利的战斗机)jsonArray.get(i)))); }else if(jsonArray.get(i).getClass().equals(String.class.toString())){ sb.append(String.format("/"{0}/",", jsonArray.get(i))); }else{ sb.append(String.format("/"{0}/",", "")); } } if (sb.length() > 1) sb.deleteCharAt(sb.length()- 1); sb.append("]"); return sb.toString(); }