简体   繁体   中英

How to Convert JSON object to Array

I am new to C# need help to convert json Object to Array

convert this json

[
    {
        "Id": 1000,
        "Name": "May",
        "Address": "odyssey",
        "Country": "USA",
        "Phone": "12345"
    }
]

To

var details = {1000,May,odyssey,USA,12345};

Use Newtonsoft.Json to deserialize JSON to a specified .net type. You can deserialize to a class too, see below:

public class Person
{
 public int Id {get;set;}
 public string Name {get;set;}
 public string Address {get;set;}
 public string Country {get;set;}
 public string Phone {get;set;}
}

var details = JsonConvert.DeserializeObject<Person>(json);

You are going to have to deserialize the Json String. Deserialize into array of objects.

JavaScriptSerializer js = new JavaScriptSerializer();
yourClass[] items = js.Deserialize<Yourclass[]>(yourJSONcontent);

Steps:

1. Create Model. 2. Get Data in string 3.Deserialize Object

And if you are confused How to create C# model from the json then use this link.

https://app.quicktype.io

Use This Model.

    public class Test
    {
        [JsonProperty("Id")]
        public long Id { get; set; }

        [JsonProperty("Name")]
        public string Name { get; set; }

        [JsonProperty("Address")]
        public string Address { get; set; }

        [JsonProperty("Country")]
        public string Country { get; set; }

        [JsonProperty("Phone")]
        [JsonConverter(typeof(ParseStringConverter))]
        public long Phone { get; set; }
    }


string data="Your Json String"

var details = JsonConvert.DeserializeObject<Test>(data);

To make a list from your json values you can use a JObject, you don't have to know the objects stored in your Json in contrary to the others question.

JObject myObject = JsonConvert.DeserializeObject<JObject>(myJson);

List<object> myList = new List<object>();

foreach (var element in myObject)
{
    myList.Add(element.Value);
}

If you already know what your json is made of, you can create a class that represent your object and implement the interface IEnumerable.

var myObject = JsonConvert.DeserializeObject<MyClass>(myJson);
var myArray = myObject2.ToArray():

public class MyClass
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Address { get; set; }
    public string Country { get; set; }
    public int Phone { get; set; }

    public object[] ToArray()
    {
        return new object[]
        {
            Id,
            Name,
            Address,
            Country,
            Phone
        };
    }
}

NB : the variable myJson in the previous codes is a string that represent your json as var myJson = "{\\"Id\\": 1000,\\"Name\\": \\"May\\",\\"Address\\": \\"odyssey\\",\\"Country\\": \\"USA\\",\\"Phone\\": \\"12345\\"}";

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM