Запрос JSON String - PullRequest
       15

Запрос JSON String

0 голосов
/ 12 апреля 2010

Есть ли способ запросить JSON (String) для определенного элемента?

е:

String jSon = "{\"a\":{\"b\":27472483,\"c\":\"123\"}}";

такой, что:

Int32 bob = (Int32)getFromJSON("a.b", jSon);
// bob == 27472483

Спасибо, -Theo

Ответы [ 2 ]

1 голос
/ 12 апреля 2010

Здесь вы хотите десериализовать строку JSON в объект C #, а затем получить доступ к свойству 'b' оттуда. Подробнее об этом здесь

0 голосов
/ 12 апреля 2010
    public T getFromJSON<T>(String sel, String jSon)
    {
        String[] id = sel.Split('.');
        Object tmp = jSon;

        for (int i = 0; i < id.Length; i++)
        {
            tmp = tmp.ToString().Split(new string[] { "\"" + id[i] + "\":" }, StringSplitOptions.None)[1];
        }

        Boolean isString = false;
        if (tmp.ToString().StartsWith("\""))
        {
            tmp = tmp.ToString().Substring(1);
            isString = true;
        }

        tmp = tmp.ToString().Split(new char[] { '}', ']', '"' }, StringSplitOptions.None)[0];

        if (!isString && tmp.ToString().EndsWith(","))
            tmp = tmp.ToString().Substring(0, tmp.ToString().Length - 1);

        if (typeof(T) == typeof(Int32))
            tmp = Int32.Parse(tmp.ToString());

        return (T)tmp;
    }

v0.7b Работает!

...