/// <summary>Converts the JSONObject into a property file object.</summary> /// <param name="jo">JSONObject</param> /// <returns>java.util.Properties</returns> /// <exception cref="JSONException"/> /// <exception cref="org.json.JSONException"/> public static java.util.Properties ToProperties(org.json.JSONObject jo) { java.util.Properties properties = new java.util.Properties(); if (jo != null) { System.Collections.Generic.IEnumerator<string> keys = jo.Keys(); while (keys.HasNext()) { string name = keys.Next(); properties[name] = jo.GetString(name); } } return properties; }
/// <summary>Reverse the JSONML transformation, making an XML text from a JSONArray.</summary> /// <param name="ja">A JSONArray.</param> /// <returns>An XML string.</returns> /// <exception cref="JSONException"/> /// <exception cref="org.json.JSONException"/> public static string ToString(org.json.JSONArray ja) { int i; org.json.JSONObject jo; string key; System.Collections.Generic.IEnumerator<string> keys; int length; object @object; System.Text.StringBuilder sb = new System.Text.StringBuilder(); string tagName; string value; // Emit <tagName tagName = ja.GetString(0); org.json.XML.NoSpace(tagName); tagName = org.json.XML.Escape(tagName); sb.Append('<'); sb.Append(tagName); @object = ja.Opt(1); if (@object is org.json.JSONObject) { i = 2; jo = (org.json.JSONObject)@object; // Emit the attributes keys = jo.Keys(); while (keys.HasNext()) { key = keys.Next(); org.json.XML.NoSpace(key); value = jo.OptString(key); if (value != null) { sb.Append(' '); sb.Append(org.json.XML.Escape(key)); sb.Append('='); sb.Append('"'); sb.Append(org.json.XML.Escape(value)); sb.Append('"'); } } } else { i = 1; } // Emit content in body length = ja.Length(); if (i >= length) { sb.Append('/'); sb.Append('>'); } else { sb.Append('>'); do { @object = ja.Get(i); i += 1; if (@object != null) { if (@object is string) { sb.Append(org.json.XML.Escape(@object.ToString())); } else { if (@object is org.json.JSONObject) { sb.Append(ToString((org.json.JSONObject)@object)); } else { if (@object is org.json.JSONArray) { sb.Append(ToString((org.json.JSONArray)@object)); } else { sb.Append(@object.ToString()); } } } } } while (i < length); sb.Append('<'); sb.Append('/'); sb.Append(tagName); sb.Append('>'); } return sb.ToString(); }
/// <summary>Convert a JSONObject into an HTTP header.</summary> /// <remarks> /// Convert a JSONObject into an HTTP header. A request header must contain /// <pre>{ /// Method: "POST" (for example), /// "Request-URI": "/" (for example), /// "HTTP-Version": "HTTP/1.1" (for example) /// }</pre> /// A response header must contain /// <pre>{ /// "HTTP-Version": "HTTP/1.1" (for example), /// "Status-Code": "200" (for example), /// "Reason-Phrase": "OK" (for example) /// }</pre> /// Any other members of the JSONObject will be output as HTTP fields. /// The result will end with two CRLF pairs. /// </remarks> /// <param name="jo">A JSONObject</param> /// <returns>An HTTP header string.</returns> /// <exception cref="JSONException"> /// if the object does not contain enough /// information. /// </exception> /// <exception cref="org.json.JSONException"/> public static string ToString(org.json.JSONObject jo) { System.Collections.Generic.IEnumerator<string> keys = jo.Keys(); string @string; System.Text.StringBuilder sb = new System.Text.StringBuilder(); if (jo.Has("Status-Code") && jo.Has("Reason-Phrase")) { sb.Append(jo.GetString("HTTP-Version")); sb.Append(' '); sb.Append(jo.GetString("Status-Code")); sb.Append(' '); sb.Append(jo.GetString("Reason-Phrase")); } else { if (jo.Has("Method") && jo.Has("Request-URI")) { sb.Append(jo.GetString("Method")); sb.Append(' '); sb.Append('"'); sb.Append(jo.GetString("Request-URI")); sb.Append('"'); sb.Append(' '); sb.Append(jo.GetString("HTTP-Version")); } else { throw new org.json.JSONException("Not enough material for an HTTP header."); } } sb.Append(CRLF); while (keys.HasNext()) { @string = keys.Next(); if (!"HTTP-Version".Equals(@string) && !"Status-Code".Equals(@string) && !"Reason-Phrase".Equals(@string) && !"Method".Equals(@string) && !"Request-URI".Equals(@string) && !jo.IsNull(@string)) { sb.Append(@string); sb.Append(": "); sb.Append(jo.GetString(@string)); sb.Append(CRLF); } } sb.Append(CRLF); return sb.ToString(); }
/// <summary> /// Produce a JSONArray containing the values of the members of this /// JSONObject. /// </summary> /// <param name="names"> /// A JSONArray containing a list of key strings. This determines /// the sequence of the values in the result. /// </param> /// <returns>A JSONArray of values.</returns> /// <exception cref="JSONException">If any of the values are non-finite numbers.</exception> /// <exception cref="org.json.JSONException"/> public virtual org.json.JSONArray ToJSONArray(org.json.JSONArray names) { if (names == null || names.Length() == 0) { return null; } org.json.JSONArray ja = new org.json.JSONArray(); for (int i = 0; i < names.Length(); i += 1) { ja.Put(this.Opt(names.GetString(i))); } return ja; }
/// <summary>Convert a JSONObject into a cookie specification string.</summary> /// <remarks> /// Convert a JSONObject into a cookie specification string. The JSONObject /// must contain "name" and "value" members. /// If the JSONObject contains "expires", "domain", "path", or "secure" /// members, they will be appended to the cookie specification string. /// All other members are ignored. /// </remarks> /// <param name="jo">A JSONObject</param> /// <returns>A cookie specification string</returns> /// <exception cref="JSONException"/> /// <exception cref="org.json.JSONException"/> public static string ToString(org.json.JSONObject jo) { System.Text.StringBuilder sb = new System.Text.StringBuilder(); sb.Append(Escape(jo.GetString("name"))); sb.Append("="); sb.Append(Escape(jo.GetString("value"))); if (jo.Has("expires")) { sb.Append(";expires="); sb.Append(jo.GetString("expires")); } if (jo.Has("domain")) { sb.Append(";domain="); sb.Append(Escape(jo.GetString("domain"))); } if (jo.Has("path")) { sb.Append(";path="); sb.Append(Escape(jo.GetString("path"))); } if (jo.OptBoolean("secure")) { sb.Append(";secure"); } return sb.ToString(); }
/// <summary>Convert a JSONObject into a cookie list.</summary> /// <remarks> /// Convert a JSONObject into a cookie list. A cookie list is a sequence /// of name/value pairs. The names are separated from the values by '='. /// The pairs are separated by ';'. The characters '%', '+', '=', and ';' /// in the names and values are replaced by "%hh". /// </remarks> /// <param name="jo">A JSONObject</param> /// <returns>A cookie list string</returns> /// <exception cref="JSONException"/> /// <exception cref="org.json.JSONException"/> public static string ToString(org.json.JSONObject jo) { bool b = false; System.Collections.Generic.IEnumerator<string> keys = jo.Keys(); string @string; System.Text.StringBuilder sb = new System.Text.StringBuilder(); while (keys.HasNext()) { @string = keys.Next(); if (!jo.IsNull(@string)) { if (b) { sb.Append(';'); } sb.Append(org.json.Cookie.Escape(@string)); sb.Append("="); sb.Append(org.json.Cookie.Escape(jo.GetString(@string))); b = true; } } return sb.ToString(); }