vxspdq
Last Updated: February 25, 2016
·
8.389K
· artfulhacker
10425126 10103995008712411 6222461894198440691 n

Simple JSON Array Methods in C#

Echovoice.JSON

Echovoice JSON Array Encode, Decode and Pretty methods. Used internally until the public release of WS3V.

This library is available on Nuget as Echovoice.JSON.

Why?

Json.net was too big for simple JSON array encoding and decoding, plus the way to use it was far too complex.

JavascriptSerializer uses the odd JsonArray class, all we wanted was simple strings, arrays or numbers.

Decode Usage

Simple JSON array to string array JSONDecoders.DecodeJsStringArray()

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

result[0]: philcollins

result[1]: Ih8PeterG

Complex JSON Array 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]);

result[0]: 14

result[1]: 4

result[2]: [14,"data"]

result[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"]

Encode Usage

Simple object to JSON Array 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);

Result:
[[29,"mike"],[5,"dummy"]]

Pretty Usage

Pretty print JSON Array PrettyPrintJson() string extension method

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

Result:

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