Deserialize two element string in JSON












0















I have the following string,



[{ "AnimalName" : "Gatto", "Year" : 5.0 }, { "AnimalName" : "Gatto", "Year" : 6.0 }]


I want to Deserialize this string using the class Animali



public class Animali
{
public string AnimalName { get; set; }
public double Year { get; set; }
}


I use the following code,



Animali json = JsonConvert.DeserializeObject<Animali>(string);


My problem is that having two separate element, I receive the error;




Newtonsoft.Json.JsonReaderException: 'Additional text encountered after finished reading JSON content: ,. Path '', line 1, position 40.'




What is the correct way to deserialize the string? Any suggestion?



P.S. Using one elemente like [{ "AnimalName" : "Gatto", "Year" : 5.0 }] the code works correctly.










share|improve this question




















  • 2





    You have multiple animal now, you should be expecting a Animali or List<Animali>.

    – Xiaoy312
    Nov 24 '18 at 1:45











  • Ohhh,ok. Now is clear. With this code the Json works correctly List<Animali> jsonReal2 = JsonConvert.DeserializeObject <List<Animali>>(Encoding.ASCII.GetString(data)); Thanks so much @Xiaoy312!!

    – mems
    Nov 24 '18 at 2:04


















0















I have the following string,



[{ "AnimalName" : "Gatto", "Year" : 5.0 }, { "AnimalName" : "Gatto", "Year" : 6.0 }]


I want to Deserialize this string using the class Animali



public class Animali
{
public string AnimalName { get; set; }
public double Year { get; set; }
}


I use the following code,



Animali json = JsonConvert.DeserializeObject<Animali>(string);


My problem is that having two separate element, I receive the error;




Newtonsoft.Json.JsonReaderException: 'Additional text encountered after finished reading JSON content: ,. Path '', line 1, position 40.'




What is the correct way to deserialize the string? Any suggestion?



P.S. Using one elemente like [{ "AnimalName" : "Gatto", "Year" : 5.0 }] the code works correctly.










share|improve this question




















  • 2





    You have multiple animal now, you should be expecting a Animali or List<Animali>.

    – Xiaoy312
    Nov 24 '18 at 1:45











  • Ohhh,ok. Now is clear. With this code the Json works correctly List<Animali> jsonReal2 = JsonConvert.DeserializeObject <List<Animali>>(Encoding.ASCII.GetString(data)); Thanks so much @Xiaoy312!!

    – mems
    Nov 24 '18 at 2:04
















0












0








0








I have the following string,



[{ "AnimalName" : "Gatto", "Year" : 5.0 }, { "AnimalName" : "Gatto", "Year" : 6.0 }]


I want to Deserialize this string using the class Animali



public class Animali
{
public string AnimalName { get; set; }
public double Year { get; set; }
}


I use the following code,



Animali json = JsonConvert.DeserializeObject<Animali>(string);


My problem is that having two separate element, I receive the error;




Newtonsoft.Json.JsonReaderException: 'Additional text encountered after finished reading JSON content: ,. Path '', line 1, position 40.'




What is the correct way to deserialize the string? Any suggestion?



P.S. Using one elemente like [{ "AnimalName" : "Gatto", "Year" : 5.0 }] the code works correctly.










share|improve this question
















I have the following string,



[{ "AnimalName" : "Gatto", "Year" : 5.0 }, { "AnimalName" : "Gatto", "Year" : 6.0 }]


I want to Deserialize this string using the class Animali



public class Animali
{
public string AnimalName { get; set; }
public double Year { get; set; }
}


I use the following code,



Animali json = JsonConvert.DeserializeObject<Animali>(string);


My problem is that having two separate element, I receive the error;




Newtonsoft.Json.JsonReaderException: 'Additional text encountered after finished reading JSON content: ,. Path '', line 1, position 40.'




What is the correct way to deserialize the string? Any suggestion?



P.S. Using one elemente like [{ "AnimalName" : "Gatto", "Year" : 5.0 }] the code works correctly.







c# json json.net






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 24 '18 at 10:06









Uwe Keim

27.5k32131212




27.5k32131212










asked Nov 24 '18 at 1:41









memsmems

154




154








  • 2





    You have multiple animal now, you should be expecting a Animali or List<Animali>.

    – Xiaoy312
    Nov 24 '18 at 1:45











  • Ohhh,ok. Now is clear. With this code the Json works correctly List<Animali> jsonReal2 = JsonConvert.DeserializeObject <List<Animali>>(Encoding.ASCII.GetString(data)); Thanks so much @Xiaoy312!!

    – mems
    Nov 24 '18 at 2:04
















  • 2





    You have multiple animal now, you should be expecting a Animali or List<Animali>.

    – Xiaoy312
    Nov 24 '18 at 1:45











  • Ohhh,ok. Now is clear. With this code the Json works correctly List<Animali> jsonReal2 = JsonConvert.DeserializeObject <List<Animali>>(Encoding.ASCII.GetString(data)); Thanks so much @Xiaoy312!!

    – mems
    Nov 24 '18 at 2:04










2




2





You have multiple animal now, you should be expecting a Animali or List<Animali>.

– Xiaoy312
Nov 24 '18 at 1:45





You have multiple animal now, you should be expecting a Animali or List<Animali>.

– Xiaoy312
Nov 24 '18 at 1:45













Ohhh,ok. Now is clear. With this code the Json works correctly List<Animali> jsonReal2 = JsonConvert.DeserializeObject <List<Animali>>(Encoding.ASCII.GetString(data)); Thanks so much @Xiaoy312!!

– mems
Nov 24 '18 at 2:04







Ohhh,ok. Now is clear. With this code the Json works correctly List<Animali> jsonReal2 = JsonConvert.DeserializeObject <List<Animali>>(Encoding.ASCII.GetString(data)); Thanks so much @Xiaoy312!!

– mems
Nov 24 '18 at 2:04














2 Answers
2






active

oldest

votes


















2














As pointed out, your json is an array, and you need to deserialize it as such



var results = JsonConvert.DeserializeObject<List<Animali>>(string);


Example from the json site



Deserialize a Collection






share|improve this answer































    0















    1. Try to parse your json string into JToken.


    2. Cast your JToken to List.



    Here I created a console app for your demonstration purpose.



    class Program
    {
    static void Main(string args)
    {
    string json = @"[{ 'AnimalName' : 'Gatto', 'Year' : 5.0 }, { 'AnimalName' : 'Gatto', 'Year' : 6.0 }]";

    JToken jToken = JToken.Parse(json); //Point No. 1
    List<Animali> animalis = jToken.ToObject<List<Animali>>(); //Point No. 2

    foreach (Animali animali in animalis) //Print result
    {
    Console.WriteLine("AnimalName: " + animali.AnimalName + "t Year: " + animali.Year);
    }

    Console.ReadLine();
    }
    }


    Output:



    enter image description here






    share|improve this answer

























      Your Answer






      StackExchange.ifUsing("editor", function () {
      StackExchange.using("externalEditor", function () {
      StackExchange.using("snippets", function () {
      StackExchange.snippets.init();
      });
      });
      }, "code-snippets");

      StackExchange.ready(function() {
      var channelOptions = {
      tags: "".split(" "),
      id: "1"
      };
      initTagRenderer("".split(" "), "".split(" "), channelOptions);

      StackExchange.using("externalEditor", function() {
      // Have to fire editor after snippets, if snippets enabled
      if (StackExchange.settings.snippets.snippetsEnabled) {
      StackExchange.using("snippets", function() {
      createEditor();
      });
      }
      else {
      createEditor();
      }
      });

      function createEditor() {
      StackExchange.prepareEditor({
      heartbeatType: 'answer',
      autoActivateHeartbeat: false,
      convertImagesToLinks: true,
      noModals: true,
      showLowRepImageUploadWarning: true,
      reputationToPostImages: 10,
      bindNavPrevention: true,
      postfix: "",
      imageUploader: {
      brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
      contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
      allowUrls: true
      },
      onDemand: true,
      discardSelector: ".discard-answer"
      ,immediatelyShowMarkdownHelp:true
      });


      }
      });














      draft saved

      draft discarded


















      StackExchange.ready(
      function () {
      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53454480%2fdeserialize-two-element-string-in-json%23new-answer', 'question_page');
      }
      );

      Post as a guest















      Required, but never shown

























      2 Answers
      2






      active

      oldest

      votes








      2 Answers
      2






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes









      2














      As pointed out, your json is an array, and you need to deserialize it as such



      var results = JsonConvert.DeserializeObject<List<Animali>>(string);


      Example from the json site



      Deserialize a Collection






      share|improve this answer




























        2














        As pointed out, your json is an array, and you need to deserialize it as such



        var results = JsonConvert.DeserializeObject<List<Animali>>(string);


        Example from the json site



        Deserialize a Collection






        share|improve this answer


























          2












          2








          2







          As pointed out, your json is an array, and you need to deserialize it as such



          var results = JsonConvert.DeserializeObject<List<Animali>>(string);


          Example from the json site



          Deserialize a Collection






          share|improve this answer













          As pointed out, your json is an array, and you need to deserialize it as such



          var results = JsonConvert.DeserializeObject<List<Animali>>(string);


          Example from the json site



          Deserialize a Collection







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Nov 24 '18 at 2:16









          Michael RandallMichael Randall

          32.4k63565




          32.4k63565

























              0















              1. Try to parse your json string into JToken.


              2. Cast your JToken to List.



              Here I created a console app for your demonstration purpose.



              class Program
              {
              static void Main(string args)
              {
              string json = @"[{ 'AnimalName' : 'Gatto', 'Year' : 5.0 }, { 'AnimalName' : 'Gatto', 'Year' : 6.0 }]";

              JToken jToken = JToken.Parse(json); //Point No. 1
              List<Animali> animalis = jToken.ToObject<List<Animali>>(); //Point No. 2

              foreach (Animali animali in animalis) //Print result
              {
              Console.WriteLine("AnimalName: " + animali.AnimalName + "t Year: " + animali.Year);
              }

              Console.ReadLine();
              }
              }


              Output:



              enter image description here






              share|improve this answer






























                0















                1. Try to parse your json string into JToken.


                2. Cast your JToken to List.



                Here I created a console app for your demonstration purpose.



                class Program
                {
                static void Main(string args)
                {
                string json = @"[{ 'AnimalName' : 'Gatto', 'Year' : 5.0 }, { 'AnimalName' : 'Gatto', 'Year' : 6.0 }]";

                JToken jToken = JToken.Parse(json); //Point No. 1
                List<Animali> animalis = jToken.ToObject<List<Animali>>(); //Point No. 2

                foreach (Animali animali in animalis) //Print result
                {
                Console.WriteLine("AnimalName: " + animali.AnimalName + "t Year: " + animali.Year);
                }

                Console.ReadLine();
                }
                }


                Output:



                enter image description here






                share|improve this answer




























                  0












                  0








                  0








                  1. Try to parse your json string into JToken.


                  2. Cast your JToken to List.



                  Here I created a console app for your demonstration purpose.



                  class Program
                  {
                  static void Main(string args)
                  {
                  string json = @"[{ 'AnimalName' : 'Gatto', 'Year' : 5.0 }, { 'AnimalName' : 'Gatto', 'Year' : 6.0 }]";

                  JToken jToken = JToken.Parse(json); //Point No. 1
                  List<Animali> animalis = jToken.ToObject<List<Animali>>(); //Point No. 2

                  foreach (Animali animali in animalis) //Print result
                  {
                  Console.WriteLine("AnimalName: " + animali.AnimalName + "t Year: " + animali.Year);
                  }

                  Console.ReadLine();
                  }
                  }


                  Output:



                  enter image description here






                  share|improve this answer
















                  1. Try to parse your json string into JToken.


                  2. Cast your JToken to List.



                  Here I created a console app for your demonstration purpose.



                  class Program
                  {
                  static void Main(string args)
                  {
                  string json = @"[{ 'AnimalName' : 'Gatto', 'Year' : 5.0 }, { 'AnimalName' : 'Gatto', 'Year' : 6.0 }]";

                  JToken jToken = JToken.Parse(json); //Point No. 1
                  List<Animali> animalis = jToken.ToObject<List<Animali>>(); //Point No. 2

                  foreach (Animali animali in animalis) //Print result
                  {
                  Console.WriteLine("AnimalName: " + animali.AnimalName + "t Year: " + animali.Year);
                  }

                  Console.ReadLine();
                  }
                  }


                  Output:



                  enter image description here







                  share|improve this answer














                  share|improve this answer



                  share|improve this answer








                  edited Nov 24 '18 at 10:30









                  Uwe Keim

                  27.5k32131212




                  27.5k32131212










                  answered Nov 24 '18 at 10:02









                  er-shoer-sho

                  6,1472617




                  6,1472617






























                      draft saved

                      draft discarded




















































                      Thanks for contributing an answer to Stack Overflow!


                      • Please be sure to answer the question. Provide details and share your research!

                      But avoid



                      • Asking for help, clarification, or responding to other answers.

                      • Making statements based on opinion; back them up with references or personal experience.


                      To learn more, see our tips on writing great answers.




                      draft saved


                      draft discarded














                      StackExchange.ready(
                      function () {
                      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53454480%2fdeserialize-two-element-string-in-json%23new-answer', 'question_page');
                      }
                      );

                      Post as a guest















                      Required, but never shown





















































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown

































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown







                      Popular posts from this blog

                      Tonle Sap (See)

                      I get strange results when I access the Sqlitedatabase with Unity C# via XAMPP

                      Guatemaltekische Davis-Cup-Mannschaft