C#中的简单JSON数组方法(示例)

・3 分钟阅读

Echovoice.JSON

Echovoice JSON数组编码,解码和漂亮的方法,在内部使用,直到WS3V公开发布。

此库可在Nuget上作为Echovoice.JSON

为什么?

Json.net对于简单的JSON数组编码和解码来说太大了,而且使用它的方式太复杂了。

JavascriptSerializer使用奇异的JsonArray类,我们想要的只是简单的字符串,数组或数字。

解码用法

简单的JSON数组到字符串数组JSONDecoders.DecodeJsStringArray()


string input ="["philcollins","Ih8PeterG"]";
string[] result = JSONDecoders.DecodeJsStringArray(input);

结果[0] :philcollins

结果[1] :Ih8PeterG

复杂的JSON数组JSONDecoders.DecodeJSONArray()


string input ="[14,4,[14,"data"],[[5,"10.186.122.15"],[6,"10.186.122.16"]]]";
string[] result = JSONDecoders.DecodeJSONArray(input);
string[] result2 = JSONDecoders.DecodeJSONArray(result[3]);

结果[0] :14

结果[1] :4

结果[2] :[14,"data"]

结果[3] : [[5,"10.186.122.15"],[6,"10.186.122.16"]]

result2 [0] :[5,"10.186.122.15"]

result2 [1] :[6,"10.186.122.16"]

编码用法

JSON数组EncodeJsObjectArray()的简单对象


public class dummyObject
{
 public string fake { get; set; }
 public int id { get; set; }

 public dummyObject()
 {
 fake ="dummy";
 id = 5;
 }

 public override string ToString()
 {
 StringBuilder sb = new StringBuilder();
 sb.Append('[');
 sb.Append(id);
 sb.Append(',');
 sb.Append(JSONEncoders.EncodeJsString(fake));
 sb.Append(']');

 return sb.ToString();
 }
}

dummyObject[] dummys = new dummyObject[2];
dummys[0] = new dummyObject();
dummys[1] = new dummyObject();

dummys[0].fake ="mike";
dummys[0].id = 29;

string result = JSONEncoders.EncodeJsObjectArray(dummys);

结果:
[[29,"mike"],[5,"dummy"]]

漂亮的用法

漂亮打印JSON数组PrettyPrintJson()的字符串扩展方法


string input ="[14,4,[14,"data"],[[5,"10.186.122.15"],[6,"10.186.122.16"]]]";
string result = input.PrettyPrintJson();

结果:


[
 14,
 4,
 [
 14,
"data"
 ],
 [
 [
 5,
"10.186.122.15"
 ],
 [
 6,
"10.186.122.16"
 ]
 ]
]
 



 
Jiaoyang75 profile image