Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/Newtonsoft.Json.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJamesNK <james@newtonking.com>2009-12-27 06:30:43 +0300
committerJamesNK <james@newtonking.com>2009-12-27 06:30:43 +0300
commit961945657ab9810dc19a40ac4d31045d27386137 (patch)
tree052c4b34789d3266c1cc513ce61f5d1de07b0a6c /Src/Newtonsoft.Json.Tests/TestObjects/ListOfIds.cs
parent9144bc6c80c648d950ff1f31b6ed3a0f257a63a2 (diff)
-Added JsonPrimitiveContract and JsonLinqContract
-Removed JsonRaw and replaced with JRaw -Fixed properties on existing derived values not being populated during deserialization
Diffstat (limited to 'Src/Newtonsoft.Json.Tests/TestObjects/ListOfIds.cs')
-rw-r--r--Src/Newtonsoft.Json.Tests/TestObjects/ListOfIds.cs70
1 files changed, 70 insertions, 0 deletions
diff --git a/Src/Newtonsoft.Json.Tests/TestObjects/ListOfIds.cs b/Src/Newtonsoft.Json.Tests/TestObjects/ListOfIds.cs
new file mode 100644
index 0000000..617f229
--- /dev/null
+++ b/Src/Newtonsoft.Json.Tests/TestObjects/ListOfIds.cs
@@ -0,0 +1,70 @@
+#region License
+// Copyright (c) 2007 James Newton-King
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the "Software"), to deal in the Software without
+// restriction, including without limitation the rights to use,
+// copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the
+// Software is furnished to do so, subject to the following
+// conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+// OTHER DEALINGS IN THE SOFTWARE.
+#endregion
+
+using System;
+using System.Collections.Generic;
+
+namespace Newtonsoft.Json.Tests.TestObjects
+{
+ public class ListOfIds<T> : JsonConverter where T : Bar, new()
+ {
+ public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
+ {
+ IList<T> list = (IList<T>)value;
+
+ writer.WriteStartArray();
+ foreach (T item in list)
+ {
+ writer.WriteValue(item.Id);
+ }
+ writer.WriteEndArray();
+ }
+
+ public override object ReadJson(JsonReader reader, Type objectType, JsonSerializer serializer)
+ {
+ IList<T> list = new List<T>();
+
+ reader.Read();
+ while (reader.TokenType != JsonToken.EndArray)
+ {
+ long id = (long)reader.Value;
+
+ list.Add(new T
+ {
+ Id = Convert.ToInt32(id)
+ });
+
+ reader.Read();
+ }
+
+ return list;
+ }
+
+ public override bool CanConvert(Type objectType)
+ {
+ return typeof(IList<T>).IsAssignableFrom(objectType);
+ }
+ }
+} \ No newline at end of file