LitJSON之JSON讀取和寫入
阿新 • • 發佈:2019-01-08
JSON讀取和寫入
一些開發者可能熟悉JSON資料的另一種處理方法:即通過利用類似流的方式來讀取和寫入資料。實現這種方法的是JsonReader類和 JsonWriter類。
這兩個類實際上是整個庫的基礎。JsonMapper 建立在這兩個型別之上。開發者可以認為讀取和寫入類是Litjson的底層程式介面。
使用JsonReader例子
using LitJson;
using System;
public class DataReader
{
public static void Main()
{
string sample = @"{
""name"" : ""Bill"",
""age"" : 32,
""awake"" : true,
""n"" : 1994.0226,
""note"" : [ ""life"", ""is"", ""but"", ""a"", ""dream"" ]
}" ;
PrintJson(sample);
}
public static void PrintJson(string json)
{
JsonReader reader = new JsonReader(json);
Console.WriteLine ("{0,14} {1,10} {2,16}", "Token", "Value", "Type");
Console.WriteLine (new String ('-', 42));
// The Read() method returns false when there's nothing else to read
while (reader.Read()) {
string type = reader.Value != null ?
reader.Value.GetType().ToString() : "";
Console.WriteLine("{0,14} {1,10} {2,16}",
reader.Token, reader.Value, type);
}
}
}
生成如下輸出:
Token Value 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
使用JsonWriter
JsonWriter 十分簡單。請記住:如果你希望把任意一個物件轉成JSON字串,一般情況下使用JsonMapper.ToJson即可。
using LitJson;
using System;
using System.Text;
public class DataWriter
{
public static void Main()
{
StringBuilder sb = new 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());
}
}
案例輸出
[1,2,3,{"color":"blue"}]