In C# how can I deserialize this json when one field might be a string or an array of strings?

后端 未结 3 1259
南方客
南方客 2021-01-14 04:05

I have an asp.net-mvc website and i am reading in Json string from a Database. Here is the following json in a DB. It could look like this:

{\"description\"         


        
3条回答
  •  余生分开走
    2021-01-14 04:31

    You may be interested in some details here: JSON.net - field is either string or List

    If you're willing to use Json.NET, have this function:

    public string[] getAsArray(JToken token)
    {
        if (token.HasValues)
        {
            return token.Select(m => string(m)).ToArray();
        }
        else
        {
            return ((string)token).Split(",").Select(s => s.Trim()).ToArray();
        }
    }
    

    Then usage:

    var json = "...";
    JObject o = JObject.Parse(json);
    string[] contacts = getAsArray(o["contacts"]);
    

    For either JSON the result should be the same.

提交回复
热议问题