C#JsonConvert.DeserializeObject列出/添加项目到数组

时间:2017-02-06 17:08:42

标签: c#

我目前正在尝试将一个项目添加到数组中。但我认为列表会更容易,因为我可以使用

identifiers = ['years', 'months', 'days', 'hours', 'minutes', 'seconds']
components = behind.split(str=",")
duration = dict(zip(identifiers, components))

有没有办法接收以下列表?

list.Add("whatever");

示例json:

dynamic reps = JsonConvert.DeserializeObject("rep.json");

我感谢任何帮助

3 个答案:

答案 0 :(得分:0)

假设您有一个定义列表项的类:

public class UserReps
{
    public string Username { get; set; }
    public int Reps { get; set; }
    public string LatestRep { get; set; }
} 

你可以用LINQ实现你想要的东西:

IDictionary<string, IDictionary<string, UserReps>> parsed = JsonConvert.DeserializeObject<IDictionary<string, IDictionary<string, UserReps>>>(json);
List<UserReps> userReps = parsed["reps"].Select(ur => ur.Value).ToList();

答案 1 :(得分:-1)

我认为你正在寻找这样的东西:

`

public static dynamic FromJsonToDynamic(this object value)
        {
            dynamic result = value.ToString().FromJsonToDynamic();
            return result;
        }

`

这是我用于通用对象的扩展方法。如果你正在寻找将其转换为特定对象的东西,你可以创建一个像这样的扩展方法:

public static T FromJson<T>(this object value) where T : class
    {
        T result = value.ToString().FromJson<T>();
        return result;
    }

答案 2 :(得分:-1)

暂时保留您的数据,不。您的输入数据似乎不是一个集合或可以逻辑上“分层”的东西。