A simple example:
String str = "{'name': 'cyf', 'id': 10, 'items ': [{'itemid': 1001, 'itemname': 'hello '}, {'itemid': 1002, 'itemname': 'hello2'}]} ";
****************************** *
JsonData jd = JsonMapper. ToObject (str );
String name = (String) jd ["name"];
Long id = (long) jd ["id"];
JsonData jdItems = jd ["items"];
Int itemCnt = jdItems. Count;
// Number of items in the array items
Foreach (JsonData item in jdItems)
// Traverse the array items
{Int itemID = (int) item ["itemid"];
String itemName = (String) item ["itemname"];
}
// *** Convert JsonData to a JSON string ***************************
String str2 = jd. ToJson ();
: Download
LitJSON is a class library that processes JSON data on the. NET platform. It is small and fast. Its source code is written in C # and can be called in any language on the. Net platform. The latest version is LitJSON 0.5.0.
Compared with the open-source JSON libraries on the following. Net platforms, LitJSON is far ahead in performance:
Jayrock version 0.9.8316
LitJSON version 0.3.0
Newtonsoft Json. NET version 1.1
The following describes the commonly used methods in LitJSON:
In the following example, you must first add the reference LitJson. dll and then import the namespace using LitJson;
Click to download LitJSON. dll directly, you can also go to the http://litjson.sourceforge.net to download.
1. Conversion of object objects in Json and C #
Example 1.1: Use the JsonMapper class to convert data
Ublic class Person
{
Public string Name {get; set ;}
Public int Age {get; set ;}
Public DateTime Birthday {get; set ;}
}
Public class JsonSample
{
Public static void Main ()
{
PersonToJson ();
JsonToPerson ();
}
///
/// Convert the object class to Json format
///
Public static void PersonToJson ()
{
Person bill = new Person ();
Bill. Name = "www.87cool.com ";
Bill. Age = 3;
Bill. Birthday = new DateTime (2007, 7, 17 );
String json_bill = JsonMapper. ToJson (bill );
Console. WriteLine (json_bill );
// Output: {"Name": "www.87cool.com", "Age": 3, "Birthday": "07/17/2007 00:00:00 "}
}
///
/// Convert Json data into Entity classes
///
Public static void JsonToPerson ()
{
String json = @"
{
"" Name ":" "www.87cool.com "",
"" Age "": 3,
"" Birthday ":" "07/17/2007 00:00:00 ""
}";
Person thomas = JsonMapper. ToObject (json );
Console. WriteLine ("'87cool 'age: {0}", thomas. Age );
// Output: '87cool 'age: 3
}
}
Example 1.2: Use the JsonMapper class to convert a Json string to JsonData recognized by C #, and then obtain the value through the Json data attribute name or index.
Reading JsonData objects in C # is the same as reading Json objects in JavaScript;
This reading method for Json is very nice and practical in C #, because the data returned by APIs provided by many network applications is in Json format,
For example, data in json format is returned by the photo album API of Flickr.
Public static void LoadAlbumData (string json_text)
{
JsonData data = JsonMapper. ToObject (json_text );
Console. WriteLine ("Album's name: {0}", data ["album"] ["name"]);
String artist = (string) data ["album"] ["name"];
Int year = (int) data ["album"] ["year"];
Console. WriteLine ("First track: {0}", data ["album"] ["tracks"] [0]);
}
2. Readers and Writers of Json in C #
Example 2.1: How to Use the JsonReader class
Public class DataReader
{
Public static void Main ()
{
String sample = @"{
"" Name "": "" Bill "",
"" Age "": 32,
"" Awake "": true,
"" N "": 1994.0226,
"" Note "": ["" life "", "" is "", "" but "", "" a "", "dream" "]
}";
ReadJson (sample );
}
// Output all Json data types and values
Public static void ReadJson (string json)
{
JsonReader reader = new JsonReader (json );
Console. WriteLine ("{}", "Token", "Value", "Type ");
Console. WriteLine (new String ('-', 42 ));
While (reader. Read ())
{
String type = reader. Value! = Null? Reader. Value. GetType (). ToString ():"";
Console. WriteLine ("{}", reader. Token, reader. Value, type );
}
}
}
// Output result:
// Json type value C # type
//------------------------------------------
// ObjectStart
// PropertyName name System. String
// String Bill System. String
// PropertyName age System. String
// Int 32 System. Int32
// PropertyName awake System. String
// Boolean True System. Boolean
// PropertyName n System. String
// Double 1994.0226 System. Double
// PropertyName note System. String
// ArrayStart
// String life System. String
// String is System. String
// String but System. String
// String a System. String
// String dream System. String
// ArrayEnd
// ObjectEnd
Example 2.2: How to Use the JsonWriter class
Public class DataReader
{
// Create a Json object through the JsonWriter class
Public static void WriteJson ()
{
System. Text. StringBuilder sb = new System. Text. StringBuilder ();
JsonWriter writer = new JsonWriter (sb );
Writer. WriteArrayStart ();
Writer. Write (1 );
Writer. Write (2 );
Writer. Write (3 );
Writer. WriteObjectStart ();
Writer. WritePropertyName ("color ");
Writer. Write ("blue ");
Writer. WriteObjectEnd ();
Writer. WriteArrayEnd ();
Console. WriteLine (sb. ToString ());
// Output: [1, 2, 3, {"color": "blue"}]
}
}
For more details, refer to http://litjson.sourceforge.net/doc/manual.html)