protected virtual object ReadJsonAsStringArray(JsonReader reader) { if (reader.TokenType != JsonToken.StartArray) { reader.Skip(); return null; } var rowValues = new List<string>(); var valueStartDepth = reader.Depth; var sb = new StringBuilder(); using (var sw = new StringWriter(sb)) { using (var jw = new JsonTextWriter(sw)) { while (reader.Read() && !(reader.TokenType == JsonToken.EndArray && reader.Depth == valueStartDepth)) { jw.WriteToken(reader, true); rowValues.Add(sb.ToString()); sb.Clear(); } } } return rowValues.ToArray(); }
/// <summary> /// Creates an instance of <see cref="JRaw"/> with the content of the reader's current token. /// </summary> /// <param name="reader">The reader.</param> /// <returns>An instance of <see cref="JRaw"/> with the content of the reader's current token.</returns> public static JRaw Create(JsonReader reader) { using (StringWriter sw = new StringWriter(CultureInfo.InvariantCulture)) using (JsonTextWriter jsonWriter = new JsonTextWriter(sw)) { jsonWriter.WriteToken(reader); return new JRaw(sw.ToString()); } }
public static JRaw Create(JsonReader reader) { using (StringWriter stringWriter = new StringWriter((IFormatProvider) CultureInfo.InvariantCulture)) { using (JsonTextWriter jsonTextWriter = new JsonTextWriter((TextWriter) stringWriter)) { jsonTextWriter.WriteToken(reader); return new JRaw((object) stringWriter.ToString()); } } }
private void formatButton_Click(object sender, RoutedEventArgs e) { using (var stringReader = new StringReader(textBox.Text)) using (var stringWriter = new StringWriter()) { var jsonReader = new JsonTextReader(stringReader); var jsonWriter = new JsonTextWriter(stringWriter) { Formatting = Formatting.Indented }; jsonWriter.WriteToken(jsonReader); textBox.Text = stringWriter.ToString(); } }
protected virtual object ReadJsonAsString(JsonReader reader) { var sb = new StringBuilder(); using (var wo = new StringWriter(sb)) { using (var w = new JsonTextWriter(wo)) { w.WriteToken(reader, true); } } return sb.ToString(); }
public static string JsonPrettify(string json) { using (var stringReader = new StringReader(json)) using (var stringWriter = new StringWriter()) { var jsonReader = new Newtonsoft.Json.JsonTextReader(stringReader); var jsonWriter = new Newtonsoft.Json.JsonTextWriter(stringWriter) { Formatting = Newtonsoft.Json.Formatting.Indented }; jsonWriter.WriteToken(jsonReader); return(stringWriter.ToString()); } }
public static string GetInnerJson(this JsonReader jsonReader) { if (jsonReader == null) throw new ArgumentNullException("jsonReader"); if (jsonReader.TokenType == JsonToken.PropertyName) jsonReader.Read(); var sb = new StringBuilder(); using (var sw = new StringWriter(sb)) using (var jsonWriter = new JsonTextWriter(sw)) { jsonWriter.WriteToken(jsonReader); } return sb.ToString(); }
static void Import(AzureDataCatalog td, string exportedCatalogFilePath) { int totalAssetsImportSucceeded = 0; int totalAssetsImportFailed = 0; System.IO.StreamReader sr = new StreamReader(exportedCatalogFilePath); JsonTextReader reader = new JsonTextReader(sr); StringWriter sw = new StringWriter(new StringBuilder()); JsonTextWriter jtw = new JsonTextWriter(sw); reader.Read(); if (reader.TokenType != JsonToken.StartObject) { throw new Exception("Invalid Json. Expected StartObject"); } reader.Read(); if ((reader.TokenType != JsonToken.PropertyName) || (!reader.Value.ToString().Equals("catalog"))) { throw new Exception("Invalid Json. Expected catalog array"); } reader.Read(); if (reader.TokenType != JsonToken.StartArray) { throw new Exception("Invalid Json. Expected StartArray"); } while (reader.Read()) { if (reader.TokenType == JsonToken.EndArray) break; jtw.WriteToken(reader); JObject asset = JObject.Parse(sw.ToString()); string id = asset["id"].ToString(); asset.Remove("id"); string[] idInfo = id.Split(new char[] { '/' }); string newid; string UpdateResponse = td.Update(asset.ToString(), idInfo[idInfo.Length - 2], out newid); if ((UpdateResponse != null) && (!string.IsNullOrEmpty(newid))) { totalAssetsImportSucceeded++; if (totalAssetsImportSucceeded % 50 == 0) { System.Console.WriteLine(totalAssetsImportSucceeded + "Assets Imported Succesfully"); } } else { totalAssetsImportFailed++; } //reset local variables for next iteration sw = new StringWriter(new StringBuilder()); jtw = new JsonTextWriter(sw); } Console.WriteLine("Total Imported Success: " + totalAssetsImportSucceeded); Console.WriteLine("Total Imported Failed: " + totalAssetsImportFailed); }
public void WriteTokenDirect_BadValue() { StringBuilder sb = new StringBuilder(); StringWriter sw = new StringWriter(sb); using (JsonWriter jsonWriter = new JsonTextWriter(sw)) { jsonWriter.WriteToken(JsonToken.StartArray); ExceptionAssert.Throws<FormatException>(() => { jsonWriter.WriteToken(JsonToken.Integer, "three"); }, "Input string was not in a correct format."); ExceptionAssert.Throws<ArgumentNullException>(() => { jsonWriter.WriteToken(JsonToken.Integer); }, @"Value cannot be null. Parameter name: value"); } }
public void WriteTokenDirect() { StringBuilder sb = new StringBuilder(); StringWriter sw = new StringWriter(sb); using (JsonWriter jsonWriter = new JsonTextWriter(sw)) { jsonWriter.WriteToken(JsonToken.StartArray); jsonWriter.WriteToken(JsonToken.Integer, 1); jsonWriter.WriteToken(JsonToken.StartObject); jsonWriter.WriteToken(JsonToken.PropertyName, "string"); jsonWriter.WriteToken(JsonToken.Integer, int.MaxValue); jsonWriter.WriteToken(JsonToken.EndObject); jsonWriter.WriteToken(JsonToken.EndArray); } Assert.AreEqual(@"[1,{""string"":2147483647}]", sb.ToString()); }
private static String JsonPrettify(string json) { using (var stringReader = new StringReader (json)) using (var stringWriter = new StringWriter ()) using (var jsonReader = new JsonTextReader (stringReader)) using (var jsonWriter = new JsonTextWriter (stringWriter) { Formatting = Formatting.Indented }) { jsonWriter.WriteToken (jsonReader); return stringWriter.ToString (); } }
private async Task DumpCollection(Uri collection, IReliableServiceQuery proxy, JsonTextWriter jsonWriter) { Log($"Dumping collection {collection}"); var collectionData = await proxy.GetCollectionData(collection); jsonWriter.WriteStartArray(); foreach (var item in collectionData) { using (var reader = new JsonTextReader(new StringReader(item))) { jsonWriter.WriteToken(reader); } } jsonWriter.WriteEndArray(); }
public void TokenTypeOutOfRange() { using (JsonWriter jsonWriter = new JsonTextWriter(new StringWriter())) { ArgumentOutOfRangeException ex = ExceptionAssert.Throws<ArgumentOutOfRangeException>(() => jsonWriter.WriteToken((JsonToken)int.MinValue)); Assert.AreEqual("token", ex.ParamName); ex = ExceptionAssert.Throws<ArgumentOutOfRangeException>(() => jsonWriter.WriteToken((JsonToken)int.MinValue, "test")); Assert.AreEqual("token", ex.ParamName); } }
public void WriteTokenNullCheck() { using (JsonWriter jsonWriter = new JsonTextWriter(new StringWriter())) { ExceptionAssert.Throws<ArgumentNullException>(() => { jsonWriter.WriteToken(null); }); ExceptionAssert.Throws<ArgumentNullException>(() => { jsonWriter.WriteToken(null, true); }); } }
public void WriteComments() { string json = @"//comment*//*hi*/ {//comment Name://comment true//comment after true" + StringUtils.CarriageReturn + @" ,//comment after comma" + StringUtils.CarriageReturnLineFeed + @" ""ExpiryDate""://comment" + StringUtils.LineFeed + @" new " + StringUtils.LineFeed + @"Constructor (//comment null//comment ), ""Price"": 3.99, ""Sizes"": //comment [//comment ""Small""//comment ]//comment }//comment //comment 1 "; JsonTextReader r = new JsonTextReader(new StringReader(json)); StringWriter sw = new StringWriter(); JsonTextWriter w = new JsonTextWriter(sw); w.Formatting = Formatting.Indented; w.WriteToken(r, true); StringAssert.AreEqual(@"/*comment*//*hi*/*/{/*comment*/ ""Name"": /*comment*/ true/*comment after true*//*comment after comma*/, ""ExpiryDate"": /*comment*/ new Constructor( /*comment*/, null /*comment*/ ), ""Price"": 3.99, ""Sizes"": /*comment*/ [ /*comment*/ ""Small"" /*comment*/ ]/*comment*/ }/*comment *//*comment 1 */", sw.ToString()); }
private async Task TransformToSDataPayload(Stream targetStream) { using (var oContentStream = await originalContent.ReadAsStreamAsync()) { JsonReader reader = null; JsonWriter outStream = null; int level = -1; try { reader = new JsonTextReader(new StreamReader(oContentStream)); outStream = new JsonTextWriter(new StreamWriter(targetStream)); int respContentType = GetContentType(); bool searchForCollection = respContentType == ContentOdataCollection || respContentType == ContentApiCollection; while (reader.Read()) { if (searchForCollection && level == 0 && reader.TokenType == JsonToken.PropertyName) { if ((string)reader.Value == ParamCollectionNameApi || (string)reader.Value == ParamCollectionNameOdata) { WritePagingProperties(outStream); outStream.WritePropertyName(ParamCollectionNameSdata); } else if ((string)reader.Value == ParamTotalresultOdata) outStream.WritePropertyName(ParamTotalresultSdata); else outStream.WriteToken(reader, false); } else if (reader.TokenType == JsonToken.PropertyName) outStream.WritePropertyName(CallOptionalMaps((string)reader.Value)); else { if (reader.TokenType == JsonToken.StartObject) level++; else if (reader.TokenType == JsonToken.EndObject) level--; outStream.WriteToken(reader, false); } } outStream.Flush(); } catch (Exception e) { // TODO can we get the user and tenant context from here? } finally { if (reader != null) reader.Close(); if (outStream != null) outStream.Close(); } } }
public void WriteToken() { JsonTextReader reader = new JsonTextReader(new StringReader("[1,2,3,4,5]")); reader.Read(); reader.Read(); StringWriter sw = new StringWriter(); JsonTextWriter writer = new JsonTextWriter(sw); writer.WriteToken(reader); Assert.AreEqual("1", sw.ToString()); }
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { OrderDetail order = new OrderDetail(); while (reader.Read()) { if (reader.Value != null) { int testInt; switch (reader.Value.ToString()) { case "AccountAlias": if (reader.Read() && reader.Value != null) order.AccountAlias = reader.Value.ToString(); break; case "AccountID": if (reader.Read() && reader.Value != null) order.AccountKey = reader.Value.ToString(); break; case "AdvancedOptions": if (reader.Read() && reader.Value != null) order.AdvancedOptions = reader.Value.ToString(); break; case "AssetType": AssetType assetType; if (reader.Read() && reader.Value != null && Enum.TryParse(reader.Value.ToString(), out assetType)) order.AssetType = assetType; break; case "CommissionFee": if (reader.Read() && reader.Value != null) order.CommissionFee = decimal.Parse(reader.Value.ToString()); break; case "ContractExpireDate": if (reader.Read() && reader.Value != null) order.ContractExpireDate = reader.Value.ToString(); break; case "ConversionRate": decimal testDecimal; if (reader.Read() && reader.Value != null && decimal.TryParse(reader.Value.ToString(), out testDecimal)) order.ConversionRate = testDecimal; break; case "Country": if (reader.Read() && reader.Value != null && !string.IsNullOrEmpty(reader.Value.ToString())) order.Country = reader.Value.ToString(); break; case "Denomination": Currency denomination; if (reader.Read() && reader.Value != null && Enum.TryParse(reader.Value.ToString(), out denomination)) order.Denomination = denomination; break; case "Duration": if (reader.Read() && reader.Value != null && !string.IsNullOrEmpty(reader.Value.ToString())) order.Duration = new OrderDuration(reader.Value.ToString()); break; case "ExecuteQuantity": if (reader.Read() && reader.Value != null && int.TryParse(reader.Value.ToString(), out testInt)) order.ExecuteQuantity = testInt; break; case "FilledCanceled": if (reader.Read() && reader.Value != null) order.FilledCanceled = reader.Value.ToString(); break; case "FilledPriceText": if (reader.Read() && reader.Value != null) order.FilledPriceText = reader.Value.ToString(); break; case "GroupName": if (reader.Read() && reader.Value != null) order.GroupName = reader.Value.ToString(); break; case "Legs": if (reader.Read() && reader.TokenType == JsonToken.StartArray) { // order.Legs.AddRange((List<Leg>)JsonConvert.DeserializeObject<List<Leg>>(reader.Value.ToString())); StringWriter sw = new StringWriter(); JsonTextWriter jw = new JsonTextWriter(sw); jw.WriteStartArray(); do { reader.Read(); jw.WriteToken(reader); } while (reader.TokenType != JsonToken.EndArray); order.Legs.AddRange(JsonConvert.DeserializeObject<List<Leg>>(sw.ToString())); } break; case "LimitPriceText": if (reader.Read() && reader.Value != null) order.LimitPriceText = reader.Value.ToString(); break; case "OrderID": if (reader.Read() && reader.Value != null && int.TryParse(reader.Value.ToString(), out testInt)) order.OrderId = testInt; break; case "Originator": if (reader.Read() && reader.Value != null && int.TryParse(reader.Value.ToString(), out testInt)) order.Originator = testInt; break; case "Quantity": if (reader.Read() && reader.Value != null && int.TryParse(reader.Value.ToString(), out testInt)) order.Quantity = testInt; break; case "QuantityLeft": if (reader.Read() && reader.Value != null && int.TryParse(reader.Value.ToString(), out testInt)) order.QuantityLeft = testInt; break; case "RejectReason": if (reader.Read() && reader.Value != null) order.RejectReason = reader.Value.ToString(); break; case "Routing": Route route; if (reader.Read() && reader.Value != null && Enum.TryParse(reader.Value.ToString(), out route)) order.Route = route; break; case "Spread": if (reader.Read() && reader.Value != null) order.Spread = reader.Value.ToString(); break; case "Status": if (reader.Read() && reader.Value != null) order.Status = (OrderState)Enum.Parse(typeof(OrderState), reader.Value.ToString()); break; case "StatusDescription": if (reader.Read() && reader.Value != null) order.StatusDescription = reader.Value.ToString(); break; case "StopPriceText": if (reader.Read() && reader.Value != null) order.StopPriceText = reader.Value.ToString(); break; case "Symbol": if (reader.Read() && reader.Value != null) order.Symbol = reader.Value.ToString(); break; case "TimeStamp": if (reader.Read() && reader.Value != null) order.TimeStamp = DateTime.Parse(reader.Value.ToString()); break; case "TriggeredBy": if (reader.Read() && reader.Value != null) order.TriggeredBy = reader.Value.ToString(); break; case "Type": if (reader.Read() && reader.Value != null) { StringBuilder action = new StringBuilder(255); string[] fields = reader.Value.ToString().Split(' '); foreach (string field in fields) { if (!string.IsNullOrEmpty(field)) action.Append(Char.ToUpper(field[0]) + field.Substring(1).ToLower()); } order.TradeAction = (TradeAction)Enum.Parse(typeof(TradeAction), action.ToString()); } break; default: reader.Read(); break; } } else break; } return order; }