首页 > 编程知识 正文

java类似keyvaluepair_Java中仿C#中KeyValuePair序列化jsonObject

时间:2023-05-04 13:08:49 阅读:211906 作者:4072

///

/// 序列化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();     }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。