用对象组建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;
}