Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Json string deserialized to array list of objects

Please help! Getting this error on Deserializing:

Cannot convert object of type 'System.String' to type 'System.Collections.Generic.List'

JSON string from client:

"\"[{\\"id\\":\\"18_0_2_0\\",\\"ans\\":\\"You can enter free text in place of *\\"},{\\"id\\":\\"23_1_3_1\\",\\"ans\\":\\"The refresh button\\"},{\\"id\\":\\"11_2_1_2\\",\\"ans\\":\\"False\\"}]\""

Edit: Unescaped (see comments):

[{"id":"18_0_2_0","ans":"You can enter free text in place of *"},{"id":"11_2_1_2","ans":"False"}]

JavaScriptSerializer serializer = new JavaScriptSerializer();
List<RawAnswer> ListAnswers = serializer.Deserialize<List<RawAnswer>>(str);
 [Serializable]
public class RawAnswer
{       
    public string QuestionID { get; set; }
    public string Answer { get; set; }

    public RawAnswer() { }

}

public class AnswerList
{
    public List<RawAnswer> RawAnswer { get; set; }
}
like image 568
user1553087 Avatar asked Jul 19 '26 08:07

user1553087


1 Answers

Your original json string(before aKzenT's edit) was double escaped and I used var str2 = Regex.Unescape(str); to get the actual string .

public class RawAnswer
{
     public string id { get; set; }
     public string ans { get; set; }

}

And no need for AnswerList

Now your code can work

JavaScriptSerializer serializer = new JavaScriptSerializer();
List<RawAnswer> ListAnswers = serializer.Deserialize<List<RawAnswer>>(str);
like image 178
L.B Avatar answered Jul 22 '26 01:07

L.B



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!