c#从json字符串到对象

时间:2016-12-29 13:25:05

标签: c# json

如何从这个json字符串创建对象。

它的这个功能https://wiki.gtanet.work/index.php?title=fromJson

    [["Test item 2",2,1337,1,2,"Użyj test2"],["Test item 1",2,1337,1,1,"Użyj test1"]]

我试过这个

   items f = API.shared.fromJson(myString).ToObject<items>();

和班级

public class items
{
    public string name {get;set;}
    public int weight {get;set;}
    public int model {get;set;}
    public int scala {get;set;}
    public int id {get;set;}
    public string rightClick {get;set;}
}

错误:

    Newtonsoft.Json.JsonReaderException: Invalid property identifier character: [. Path '', line 1, position 1.

3 个答案:

答案 0 :(得分:0)

我相信你的json字符串略有不正确。它应该被声明为&#39;键/值&#39;对: {[["name":"Test item 2","weight":2, "model":1337, "scala":1,"id":2,"rightClick":"Użyj test2"]........]}

http://json.org/example.html

答案 1 :(得分:0)

不幸的是,您的JSON是一个数组数组,您尝试将其转换为对象列表。你能改变你的JSON:

[{"name": "Test item 2", "weight": 2, "model": 1337, "scala": 1, "id": 2, "rightClick": "Użyj test2"}, {...}]

答案 2 :(得分:0)

如果你必须使用你共享的json。有一种解析这个json的方法;

var jsonStr = "[[\"Test item 2\",2,1337,1,2,\"Użyj test2\"],[\"Test item 1\",2,1337,1,1,\"Użyj test1\"]]";
            dynamic parsedObjectList = JsonConvert.DeserializeObject(jsonStr);
            parsedObjectList = (IEnumerable)parsedObjectList;
            List<items> itemsList = new List<items>();
            foreach (var itemList in parsedObjectList)
            {
                var item = new items();
                item.name = itemList[0];
                item.weight = itemList[1];
                item.model = itemList[2];
                item.scala = itemList[3];
                item.id = itemList[4];
                item.rightClick = itemList[5];
                itemsList.Add(item);
            }