Разбор vcard json C#

Я хочу проанализировать vcard RFC 7095 с помощью Json.NET:

["vcard",
     [
       ["version", {}, "text", "4.0"],
       ["fn", {}, "text", "John Doe"],
       ["gender", {}, "text", "M"],
       ["categories", {}, "text", "computers", "cameras"],
       ...
     ]
   ]

Я пытаюсь сделать это с помощью FormatTypeFormater, но я не могу проверить JSON.

1 ответ

Вы можете разобрать это используя JavaScriptSerializer к object[], затем поработайте над этим, чтобы построить более сложный тип:

 var js = new JavaScriptSerializer();
 var o = (object[])js.Deserialize(@"[""vcard"",
   [
     [""version"", {}, ""text"", ""4.0""],
     [""fn"", {}, ""text"", ""John Doe""],
     [""gender"", {}, ""text"", ""M""],
     [""categories"", {}, ""text"", ""computers"", ""cameras""]
   ]
 ]", typeof(object[]));



if (o.length > 1 && (o[0] as string) == "vcard")
{
    var props = o[1] as object[];

    foreach (object[] values in props)
    {
        switch (values[0] as string)
        {
            case "version":
                ...
                break;
            case "fn":
                ...
                break;
            ....
        }
    }
}

Вы должны сделать больше проверок на это, но это хорошее начало..

Другие вопросы по тегам