用对象组建JSON数据可很好地避免拼接字符串的困扰,如符号或多或少造成整个字符串不是合法的JSON串。 下面以生成如下JSON串为例介绍代码示例:
{
"a1": "1", "a2": "2", "a3": [ { "b1": "3", "b2": "4" }, { "b1": "5", "b2": "6" } ], "a4": [ "7", "8" ]
}
下载源代码:http://downloads.cmcloud.cn/kis/kis_src/code/Json_CSharp_VS2010.rar
引用.net组件:System.Web.Extensions
using System.Web.Script.Serialization;
using System.Collections;
private string createJsonString1() {
String sJson = ""; Hashtable htroot = new Hashtable(); List<Hashtable> lst = null; List<String> lststr = null; Hashtable ht = null; htroot.Add("a1", "1"); htroot.Add("a2", "2"); lst = new List<Hashtable>(); ht = new Hashtable(); ht.Add("b1", "3"); ht.Add("b2", "4"); lst.Add(ht); ht = new Hashtable(); ht.Add("b1", "5"); ht.Add("b2", "6"); lst.Add(ht); htroot.Add("a3", lst); lststr = new List<String>(); lststr.Add("7"); lststr.Add("8"); htroot.Add("a4", lststr); JavaScriptSerializer jss = new JavaScriptSerializer(); sJson = jss.Serialize(htroot); return sJson;
}
目标框架:.NET Framework 4及以上
引用组件:Newtonsoft.Json.dll
下载地址http://downloads.cmcloud.cn/kis/kis_src/Newtonsoft.Json.rar
using Newtonsoft.Json;
using System.IO;
private string createJsonString2() {
String sJson = ""; StringWriter sw = new StringWriter(); JsonWriter writer = new JsonTextWriter(sw); writer.WriteStartObject(); writer.WritePropertyName("a1"); writer.WriteValue("1"); writer.WritePropertyName("a2"); writer.WriteValue("2"); writer.WritePropertyName("a3"); writer.WriteStartArray(); writer.WriteStartObject(); writer.WritePropertyName("b1"); writer.WriteValue("3"); writer.WritePropertyName("b2"); writer.WriteValue("4"); writer.WriteEndObject(); writer.WriteStartObject(); writer.WritePropertyName("b1"); writer.WriteValue("5"); writer.WritePropertyName("b2"); writer.WriteValue("6"); writer.WriteEndObject(); writer.WriteEndArray(); writer.WritePropertyName("a4"); writer.WriteStartArray(); writer.WriteValue("7"); writer.WriteValue("8"); writer.WriteEndArray(); writer.WriteEndObject(); writer.Flush(); sJson = sw.GetStringBuilder().ToString(); return sJson;
}