| @@ -2,6 +2,7 | |||||
| 2 | using Implab.Parsing; |
|
2 | using Implab.Parsing; | |
| 3 | using System; |
|
3 | using System; | |
| 4 | using System.Collections.Generic; |
|
4 | using System.Collections.Generic; | |
|
|
5 | using System.Globalization; | |||
| 5 | using System.IO; |
|
6 | using System.IO; | |
| 6 | using System.Linq; |
|
7 | using System.Linq; | |
| 7 | using System.Text; |
|
8 | using System.Text; | |
| @@ -37,6 +38,7 namespace Implab.JSON { | |||||
| 37 | readonly bool m_flattenArrays; |
|
38 | readonly bool m_flattenArrays; | |
| 38 | readonly string m_arrayItemName; |
|
39 | readonly string m_arrayItemName; | |
| 39 | readonly XmlNameTable m_nameTable; |
|
40 | readonly XmlNameTable m_nameTable; | |
|
|
41 | readonly bool m_disposeParser; | |||
| 40 |
|
42 | |||
| 41 | public JSONXmlReader(JSONParser parser, JSONXmlReaderOptions options) { |
|
43 | public JSONXmlReader(JSONParser parser, JSONXmlReaderOptions options) { | |
| 42 | Safe.ArgumentNotNull(parser, "parser"); |
|
44 | Safe.ArgumentNotNull(parser, "parser"); | |
| @@ -49,6 +51,7 namespace Implab.JSON { | |||||
| 49 | m_flattenArrays = options.FlattenArrays; |
|
51 | m_flattenArrays = options.FlattenArrays; | |
| 50 | m_arrayItemName = options.ArrayItemName ?? "item"; |
|
52 | m_arrayItemName = options.ArrayItemName ?? "item"; | |
| 51 | m_nameTable = options.NameTable ?? new NameTable(); |
|
53 | m_nameTable = options.NameTable ?? new NameTable(); | |
|
|
54 | m_disposeParser = options.DisposeParser; | |||
| 52 | } else { |
|
55 | } else { | |
| 53 | m_prefix = String.Empty; |
|
56 | m_prefix = String.Empty; | |
| 54 | m_namespaceUri = String.Empty; |
|
57 | m_namespaceUri = String.Empty; | |
| @@ -56,6 +59,7 namespace Implab.JSON { | |||||
| 56 | m_flattenArrays = false; |
|
59 | m_flattenArrays = false; | |
| 57 | m_arrayItemName = "item"; |
|
60 | m_arrayItemName = "item"; | |
| 58 | m_nameTable = new NameTable(); |
|
61 | m_nameTable = new NameTable(); | |
|
|
62 | m_disposeParser = false; | |||
| 59 | } |
|
63 | } | |
| 60 | } |
|
64 | } | |
| 61 |
|
65 | |||
| @@ -270,7 +274,14 namespace Implab.JSON { | |||||
| 270 | } |
|
274 | } | |
| 271 |
|
275 | |||
| 272 | public override string Value { |
|
276 | public override string Value { | |
| 273 | get { return m_parser.ElementValue == null ? String.Empty : m_parser.ElementValue.ToString(); } |
|
277 | get { | |
|
|
278 | if (m_parser.ElementValue == null) | |||
|
|
279 | return String.Empty; | |||
|
|
280 | if (Convert.GetTypeCode(m_parser.ElementValue) == TypeCode.Double) | |||
|
|
281 | return ((double)m_parser.ElementValue).ToString(CultureInfo.InvariantCulture); | |||
|
|
282 | else | |||
|
|
283 | return (string)m_parser.ElementValue; | |||
|
|
284 | } | |||
| 274 | } |
|
285 | } | |
| 275 |
|
286 | |||
| 276 | void SetLocalName(string name) { |
|
287 | void SetLocalName(string name) { | |
| @@ -295,6 +306,7 namespace Implab.JSON { | |||||
| 295 |
|
306 | |||
| 296 | protected override void Dispose(bool disposing) { |
|
307 | protected override void Dispose(bool disposing) { | |
| 297 | if (disposing) { |
|
308 | if (disposing) { | |
|
|
309 | if (m_disposeParser) | |||
| 298 | m_parser.Dispose(); |
|
310 | m_parser.Dispose(); | |
| 299 | } |
|
311 | } | |
| 300 | base.Dispose(disposing); |
|
312 | base.Dispose(disposing); | |
General Comments 0
You need to be logged in to leave comments.
Login now
