Serialize Iqueryable To Json String
Posted : adminOn 6/11/2018
I'm developing a WebService that excecute linq to sql db and put the results into a VAR variable. Then I wanna serialize the result inside VAR to json format using javascript serializer (c#). Something like this: var sb= from p in ent.people. System.Runtime.Serialization. Driver Bolt Bl1. Json.DataContractJsonSerializer serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(sb.GetType()); MemoryStream ms = new MemoryStream(); serializer.WriteObject(ms, sb); string json = System.Text.Encoding.Default.GetString(ms.ToArray()); BUT I GET AN ERROR RESPONSE LIKE THIS: Type 'System.Data.Objects.ObjectQuery`1[f__AnonymousType2d`5[System.String,System.Nu llable`1[System.Int32],System.Nullable`1[System.Int32],System.Int32,System.String]]' cannot be serialized. Consider marking it with the DataContractAttribute attribute, and marking all of its members you want serialized with the DataMemberAttribute attribute.
From to the Json.Net documentation: IEnumerable, Lists and Arrays.NET lists (types that inherit from IEnumerable) and.NET arrays are converted to JSON arrays. Because JSON arrays only support a range of values and not properties, any additional properties and fields declared on.NET collections are not serialized. You'll want to run your IQueryable through this before trying to serialize it. Then, in order to use the JSON DataContract serializer, you must set up the class you wish to serialize as a DataContract. Serializing and Deserializing JSON. For simple scenarios where you want to convert to and from a JSON string. Serializing JSON to a Stream with JsonSerializer.
Ti-83 Calculus Programs there. If the type is a collection, consider marking it with the CollectionDataContractAttribute. See the Microsoft.NET Framework documentation for other supported types. HOW CAN I SERIALIZE LINQ RESULTS DIRECTLY TO JSON??
Thanks a lot for all answers! At my last job, we saw this behavior and it took a bit of doing to get around it. First, you want the IQ Toolkit, available from CodePlex for free. Print Shop Mail Crack.
In its libraries is a 'PartialEvaluator' that can reduce the complexity of many expression trees by finding nodes that always evaluate to simpler nodes, and by replacing references to 'external closures' with constants. You'll want to run your IQueryable through this before trying to serialize it. Then, in order to use the JSON DataContract serializer, you must set up the class you wish to serialize as a DataContract.
There are tutorials for doing this all over the place; basically you just decorate the class, any contained classes, and the members that you want to serialize with attributes. Once you have those two things in place, your object and its IQueryable member should be serializable to JSON using the DataContractJsonSerializer.