private static string toJSON(SqlDataReader rdr) { StringBuilder sb = new StringBuilder(); StringWriter sw = new StringWriter(sb); JsonWriter jsonWriter = new JsonTextWriter(sw); jsonWriter.WriteStartArray(); while (rdr.Read()) { int fieldcount = rdr.FieldCount; // count how many columns are in the row object[] values = new object[fieldcount]; // storage for column values rdr.GetValues(values); // extract the values in each column jsonWriter.WriteStartObject(); for (int index = 0; index < fieldcount; index++) { string colName = rdr.GetName(index); object value = values[index]; jsonWriter.WritePropertyName(colName); if (value == DBNull.Value) value = ""; else if (colName.Contains("date") && !colName.Contains("by")) value = String.Format("{0:MM/dd/yyyy HH:mm tt}", value); jsonWriter.WriteValue(value); } jsonWriter.WriteEndObject(); } jsonWriter.WriteEndArray(); return sb.ToString(); }
public static void WriteAsJson([NotNull] this LayoutBuilder layoutBuilder, [NotNull] TextWriter writer) { var output = new JsonTextWriter(writer) { Formatting = Formatting.Indented }; output.WriteStartObject("Layout"); output.WriteStartArray("Devices"); foreach (var deviceBuilder in layoutBuilder.Devices) { output.WriteStartObject(); output.WritePropertyStringIf("Name", deviceBuilder.DeviceName); output.WritePropertyStringIf("Layout", deviceBuilder.LayoutItemPath); output.WriteStartArray("Renderings"); foreach (var renderingBuilder in deviceBuilder.Renderings.Where(r => r.ParentRendering == null)) { WriteAsJson(output, deviceBuilder, renderingBuilder); } output.WriteEndArray(); output.WriteEndObject(); } output.WriteEndArray(); output.WriteEndObject(); }
public override bool Execute() { if (Items.Length == 0) throw new ArgumentException("The provided items contained zero entries."); if (!Directory.Exists(Path.GetDirectoryName(JsonFileName))) Directory.CreateDirectory(Path.GetDirectoryName(JsonFileName)); JsonSerializer jsonSerializer = new JsonSerializer(); using (StreamWriter streamWriter = new StreamWriter(JsonFileName)) { using (JsonTextWriter jsonWriter = new JsonTextWriter(streamWriter)) { jsonWriter.Formatting = Formatting.Indented; if (Items.Length > 1) jsonWriter.WriteStartArray(); foreach (ITaskItem item in Items) { var customMd = item.CloneCustomMetadata(); jsonWriter.WriteStartObject(); foreach (var key in customMd.Keys) { var mdString = key.ToString(); var mdValue = customMd[key].ToString(); jsonWriter.WritePropertyName(mdString); // if the value is surrounded in square brackets it's meant to be an array. // split the value into its respective chunks and write it into a JSON array. if (mdValue.Length > 0 && mdValue[0] == '[' && mdValue[mdValue.Length - 1] == ']') { mdValue = mdValue.Substring(1, mdValue.Length - 2); jsonWriter.WriteStartArray(); var parts = mdValue.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); foreach (var part in parts) jsonWriter.WriteValue(part); jsonWriter.WriteEndArray(); } else { jsonWriter.WriteValue(mdValue); } } jsonWriter.WriteEndObject(); } if (Items.Length > 1) jsonWriter.WriteEndArray(); Log.LogMessage(MessageImportance.High, "Writing {0}.", JsonFileName); } } return true; }
public static void WriteTo(this Item item, JsonTextWriter writer) { writer.WriteStartObject(); writer.WritePropertyName(nameof(item.Format)); writer.WriteValue(Enum.GetName(typeof(SecsFormat), item.Format)); if (item.Format == SecsFormat.List) { writer.WritePropertyName(nameof(item.Items)); writer.WriteStartArray(); foreach (var subitem in item.Items) subitem.WriteTo(writer); writer.WriteEndArray(); } else { writer.WritePropertyName(nameof(item.Values)); if (item.Format == SecsFormat.ASCII || item.Format == SecsFormat.JIS8) { writer.WriteValue(item.GetValue<string>()); } else { writer.WriteStartArray(); foreach (var value in item.Values) writer.WriteValue(value); writer.WriteEndArray(); } } writer.WriteEndObject(); }
public String ToJSONRepresentation() { StringBuilder sb = new StringBuilder(); JsonWriter jw = new JsonTextWriter(new StringWriter(sb)); jw.Formatting = Formatting.Indented; jw.WriteStartObject(); jw.WritePropertyName(this._description); jw.WriteStartArray(); foreach(MailStructure mail in this._mailStructures) { jw.WriteStartObject(); jw.WritePropertyName("Id"); jw.WriteValue(mail.Id); jw.WritePropertyName("Uuid"); jw.WriteValue(mail.Uuid); jw.WritePropertyName("MailDate"); jw.WriteValue(mail.MailDate); jw.WritePropertyName("From"); jw.WriteValue(mail.From); jw.WritePropertyName("Subject"); jw.WriteValue(mail.Subject); jw.WritePropertyName("Body"); jw.WriteValue(mail.Body); jw.WritePropertyName("AttachmentExist"); jw.WriteValue((mail.AttachmentExist ? "1" : "0")); jw.WritePropertyName("AttachmentFiles"); jw.WriteValue(mail.AttachmentFiles); jw.WriteEndObject(); } jw.WriteEndArray(); jw.WriteEndObject(); return sb.ToString(); }
public static string DataTableToJSON(DataTable dt, string dtName) { StringBuilder sb = new StringBuilder(); StringWriter sw = new StringWriter(sb); using (JsonWriter jw = new JsonTextWriter(sw)) { JsonSerializer ser = new JsonSerializer(); jw.WriteStartObject(); jw.WritePropertyName(dtName); jw.WriteStartArray(); foreach (DataRow dr in dt.Rows) { jw.WriteStartObject(); foreach (DataColumn dc in dt.Columns) { jw.WritePropertyName(dc.ColumnName); ser.Serialize(jw, dr[dc].ToString()); } jw.WriteEndObject(); } jw.WriteEndArray(); jw.WriteEndObject(); sw.Close(); jw.Close(); } return sb.ToString(); }
//https://webServiceURL/version/devices/deviceLibraryIdentifier/registrations/passTypeIdentifier?passesUpdatedSince=tag public HttpResponseMessage Get(string version, string deviceLibraryIdentifier, string passTypeIdentifier, HttpRequestMessage request) { //List<string> updatedSerialNumbers = new List<string>(); //updatedSerialNumbers.Add("121212111"); //Dictionary<string, string> outputDictionary = new Dictionary<string, string>(); //outputDictionary.Add("lastUpdated", "21/07/2012"); //outputDictionary.Add("serialNumbers", JsonConvert.SerializeObject(updatedSerialNumbers)); var response = new HttpResponseMessage(HttpStatusCode.OK); //string json = JsonConvert.SerializeObject(outputDictionary); StringBuilder sb = new StringBuilder(); StringWriter sw = new StringWriter(sb); using (JsonWriter writer = new JsonTextWriter(sw)) { writer.Formatting = Formatting.Indented; writer.WriteStartObject(); writer.WritePropertyName("lastUpdated"); writer.WriteValue("21/07/2012"); writer.WritePropertyName("serialNumbers"); writer.WriteStartArray(); writer.WriteValue("121212111"); writer.WriteEndArray(); writer.WriteEndObject(); } response.Content = new StringContent(sb.ToString(), Encoding.UTF8, "application/json"); return response; }
private string GetICJson(List<BusinessPartner> list) { StringWriter sw = new StringWriter(); using (JsonWriter writer = new JsonTextWriter(sw)) { writer.Formatting = Formatting.None; writer.WriteStartArray(); foreach (var bp in list) { writer.WriteStartObject(); writer.WritePropertyName("id"); writer.WriteValue(bp.Id); writer.WritePropertyName("name"); writer.WriteValue(bp.ShortName); writer.WriteEndObject(); } writer.WriteEndArray(); writer.Flush(); sw.Close(); } return sw.GetStringBuilder().ToString(); }
//JsonWriter writer = new JsonTextWriter(); protected static string BasicRequest(int requestID, string method, string sessionID, params string[] parameters) { StringBuilder sb = new StringBuilder(); StringWriter sw = new StringWriter(sb); using (JsonWriter writer = new JsonTextWriter(sw)) { writer.Formatting = Formatting.Indented; writer.WriteStartObject(); writer.WritePropertyName("jsonrpc"); writer.WriteValue("2.0"); writer.WritePropertyName("id"); writer.WriteValue(requestID); writer.WritePropertyName("method"); writer.WriteValue(method); writer.WritePropertyName("params"); writer.WriteStartArray(); writer.WriteValue(sessionID); foreach (var p in parameters) writer.WriteValue(p); writer.WriteEndArray(); writer.WriteEndObject(); return sb.ToString(); //return sb.ToString().Replace("\n",""); } }
internal string ToJson() { StringBuilder sb = new StringBuilder(); using (StringWriter sw = new StringWriter(sb)) { using (JsonWriter jw = new JsonTextWriter(sw)) { jw.WriteStartObject(); if (!string.IsNullOrEmpty(AreaType)) { jw.WritePropertyName("areaType"); jw.WriteValue(AreaType); } if (!string.IsNullOrEmpty(BufferUnits)) { jw.WritePropertyName("bufferUnits"); jw.WriteValue(BufferUnits); } if (BufferRadii != null && BufferRadii.Count > 0) { jw.WritePropertyName("Drives"); jw.WriteStartArray(); foreach (var radius in BufferRadii) jw.WriteValue(radius); jw.WriteEndArray(); } jw.WriteEndObject(); } } return sb.ToString(); }
/// <summary> /// 数据集(DataSet)转DataJSON 一般用于显示查询结果。 /// </summary> public static String dataTableToDataJson(DataTable dt,int pCount) { StringBuilder sb = new StringBuilder(); StringWriter sw = new StringWriter(sb); using (JsonWriter jsonWriter = new JsonTextWriter(sw)) { jsonWriter.Formatting = Formatting.Indented; jsonWriter.WriteStartArray(); for (int i = 0; i < dt.Rows.Count; i++) { jsonWriter.WriteStartObject(); foreach (DataColumn dc in dt.Columns) { jsonWriter.WritePropertyName(dc.ColumnName); jsonWriter.WriteValue(dt.Rows[i][dc.ColumnName]); } jsonWriter.WriteEndObject(); } jsonWriter.WriteEndArray(); } string hand = "{\"totalProperty\": " + pCount.ToString() + " , \"root\": "; return Convert.ToString(hand + sb + "}"); }
/// <summary> /// Writes Protocol in JSON format /// </summary> /// <param name="writer">JSON writer</param> /// <param name="names">list of named schemas already written</param> internal void WriteJson(Newtonsoft.Json.JsonTextWriter writer, SchemaNames names) { writer.WriteStartObject(); JsonHelper.writeIfNotNullOrEmpty(writer, "protocol", this.Name); JsonHelper.writeIfNotNullOrEmpty(writer, "namespace", this.Namespace); JsonHelper.writeIfNotNullOrEmpty(writer, "doc", this.Doc); writer.WritePropertyName("types"); writer.WriteStartArray(); foreach (Schema type in this.Types) { type.WriteJson(writer, names, this.Namespace); } writer.WriteEndArray(); writer.WritePropertyName("messages"); writer.WriteStartObject(); foreach (KeyValuePair <string, Message> message in this.Messages) { writer.WritePropertyName(message.Key); message.Value.writeJson(writer, names, this.Namespace); } writer.WriteEndObject(); writer.WriteEndObject(); }
public void ValueFormatting() { StringBuilder sb = new StringBuilder(); StringWriter sw = new StringWriter(sb); using (JsonWriter jsonWriter = new JsonTextWriter(sw)) { jsonWriter.WriteStartArray(); jsonWriter.WriteValue('@'); jsonWriter.WriteValue("\r\n\t\f\b?{\\r\\n\"\'"); jsonWriter.WriteValue(true); jsonWriter.WriteValue(10); jsonWriter.WriteValue(10.99); jsonWriter.WriteValue(0.99); jsonWriter.WriteValue(0.000000000000000001d); jsonWriter.WriteValue(0.000000000000000001m); jsonWriter.WriteValue((string)null); jsonWriter.WriteValue((object)null); jsonWriter.WriteValue("This is a string."); jsonWriter.WriteNull(); jsonWriter.WriteUndefined(); jsonWriter.WriteEndArray(); } string expected = @"[""@"",""\r\n\t\f\b?{\\r\\n\""'"",true,10,10.99,0.99,1E-18,0.000000000000000001,null,null,""This is a string."",null,undefined]"; string result = sb.ToString(); Console.WriteLine("ValueFormatting"); Console.WriteLine(result); Assert.AreEqual(expected, result); }
/// <summary> /// Convert parameter list to json object /// </summary> public static string parameterFieldMapJson(parameters parms, string ProjectID, string QueryID) { StringWriter sw = new StringWriter(); JsonTextWriter json = new JsonTextWriter(sw); json.WriteStartObject(); json.WritePropertyName("results"); json.WriteStartArray(); json.WriteStartObject(); // ProjectID and QueryID json.WritePropertyName("ProjectID"); json.WriteValue(ProjectID); json.WritePropertyName("QueryID"); json.WriteValue(QueryID); json.WritePropertyName("parameters"); json.WriteRawValue(JsonConvert.SerializeObject(parms)); json.WriteEndObject(); json.WriteEndArray(); json.WriteEndObject(); json.Flush(); sw.Flush(); return sw.ToString(); }
public static string Msj(string _msjx, UserManager.UserClass _user) { string msj_f = HttpUtility.HtmlEncode(_msjx.Replace("\\\"", "\"")); StringBuilder sb = new StringBuilder(); StringWriter sw = new StringWriter(sb); using (JsonWriter writer = new JsonTextWriter(sw)) { writer.Formatting = Formatting.None; writer.WriteStartArray(); writer.WriteValue((int)ServerOpcode.chat); writer.WriteValue(_msjx); writer.WriteValue(_user.Name); if(_user.rank >= 24) writer.WriteValue(ChatType.CHAT_TYPE_GM); //type else writer.WriteValue(0); //type if (_user.guild > 0) writer.WriteValue(_user.guild_name); writer.WriteEndArray(); } return sb.ToString(); }
public override string Serialize(Node node, Type typeAttr) { XpcaProxy proxy = new XpcaProxy(node); StringWriter sw = new StringWriter(); using(JsonWriter jsonWriter = new JsonTextWriter(sw)) { jsonWriter.Formatting = Newtonsoft.Json.Formatting.None; jsonWriter.WriteStartObject(); foreach (KeyValuePair<string, PropertyInfo> property in proxy.GetPropertiesFor(typeAttr)) { object value = proxy[property.Key]; if (value != null) { jsonWriter.WritePropertyName(property.Key); if(value is IEnumerable<object>) { jsonWriter.WriteStartArray(); foreach (object obj in (value as IEnumerable<object>)) { JsonWriteValue(jsonWriter, obj); } jsonWriter.WriteEndArray(); } else { JsonWriteValue(jsonWriter, value); } } } jsonWriter.WriteEndObject(); } return sw.ToString(); }
public void Invoke(Session _Session, IncomingPacket _Packet) { string _ctmp = _Packet.GetString(); string msj_f = HttpUtility.HtmlEncode(_ctmp.Replace("\\\"", "\"")); StringBuilder sb = new StringBuilder(); StringWriter sw = new StringWriter(sb); using (JsonWriter writer = new JsonTextWriter(sw)) { writer.Formatting = Formatting.None; writer.WriteStartArray(); writer.WriteValue((int)ServerOpcode.chat); writer.WriteValue(msj_f); writer.WriteValue(_Session.User.Name); if (_Session.User.rank >= 24) writer.WriteValue(ChatType.CHAT_TYPE_GM); //type else writer.WriteValue(0); //type if (_Session.User.guild > 0) writer.WriteValue(_Session.User.guild_name); writer.WriteEndArray(); } _Session.Broadcast(sb.ToString()); }
/// <summary> /// Writes union schema in JSON format /// </summary> /// <param name="writer">JSON writer</param> /// <param name="names">list of named schemas already written</param> /// <param name="encspace">enclosing namespace of the schema</param> protected internal override void WriteJson(Newtonsoft.Json.JsonTextWriter writer, SchemaNames names, string encspace) { writer.WriteStartArray(); foreach (Schema schema in this.Schemas) { schema.WriteJson(writer, names, encspace); } writer.WriteEndArray(); }
/// <summary> /// Write API JSON. /// </summary> /// <param name="jw">The JSON writer.</param> internal void Write(JsonTextWriter jw) { jw.WritePropertyName(this.Name); jw.WriteStartArray(); foreach (DirectMethod method in this.methods.Values) { method.Write(jw); } jw.WriteEndArray(); }
public string ToJsonString() { var sb = new StringBuilder(); using(var sw = new StringWriter(sb)) using(JsonWriter jw = new JsonTextWriter(sw)) { jw.WriteStartArray(); jw.WriteValue(FunctionName); jw.WriteStartArray(); Argument.ForEach(a => jw.WriteRawValue(a.ToString())); jw.WriteEndArray(); jw.WriteEndArray(); } return sb.ToString(); }
public static void WriteCoord(Point coordinate, JsonTextWriter writer) { if (coordinate == null) return; if (writer == null) throw new ArgumentNullException("writer", "A valid JSON writer object is required"); writer.WriteStartArray(); writer.WriteValue(coordinate.X); writer.WriteValue(coordinate.Y); writer.WriteEndArray(); }
public void ExportData(SmugglerOptions options) { using (var streamWriter = new StreamWriter(new GZipStream(File.Create(options.File), CompressionMode.Compress))) { var jsonWriter = new JsonTextWriter(streamWriter) { Formatting = Formatting.Indented }; jsonWriter.WriteStartObject(); jsonWriter.WritePropertyName("Indexes"); jsonWriter.WriteStartArray(); if (options.OperateOnTypes.HasFlag(ItemType.Indexes)) { ExportIndexes(jsonWriter); } jsonWriter.WriteEndArray(); jsonWriter.WritePropertyName("Docs"); jsonWriter.WriteStartArray(); if (options.OperateOnTypes.HasFlag(ItemType.Documents)) { ExportDocuments(options, jsonWriter); } jsonWriter.WriteEndArray(); jsonWriter.WritePropertyName("Attachments"); jsonWriter.WriteStartArray(); if (options.OperateOnTypes.HasFlag(ItemType.Attachments)) { ExportAttachments(jsonWriter); } jsonWriter.WriteEndArray(); jsonWriter.WriteEndObject(); streamWriter.Flush(); } }
public void Save(JsonTextWriter writer) { writer.WriteStartObject(); writer.WritePropertyName("regions"); writer.WriteStartArray(); foreach ( var region in Regions ) { writer.WriteStartObject(); writer.WritePropertyName("start"); writer.WriteValue(region.Item1); writer.WritePropertyName("length"); writer.WriteValue(region.Item2); writer.WriteEndObject(); } writer.WriteEndArray(); writer.WriteEndObject(); }
public void ExportToStream(List<string> selectedExporters, string siteId, string language, Stream stream) { var exporters = _exporters.Where(e => selectedExporters.Contains(e.EntityKey)); using (var streamWriter = new StreamWriter(stream)) { using (var writer = new JsonTextWriter(streamWriter)) { writer.WriteStartArray(); foreach (var exporter in exporters) { exporter.WriteToStream(siteId, language, writer); } writer.WriteEndArray(); } } }
public string ToJsonString() { var sb = new StringBuilder(); using(var sw = new StringWriter(sb)) using(JsonWriter jw = new JsonTextWriter(sw)) { jw.WriteStartArray(); jw.WriteValue(FunctionName); WriteArguments(jw); jw.WriteEndArray(); } return sb.ToString(); }
public static void Save() { JsonSerializer serializer = new JsonSerializer(); serializer.NullValueHandling = NullValueHandling.Ignore; using(StreamWriter sw = new StreamWriter("SavedGames" + Path.DirectorySeparatorChar + "Players.json")) { using(JsonWriter writer = new JsonTextWriter(sw)) { writer.WriteStartObject(); writer.WritePropertyName("Players"); writer.WriteStartArray(); foreach(PlayerDetails player in players) SavePlayer(writer,player); writer.WriteEndArray(); writer.WriteEndObject(); } } }
public string GetAllBooksAsync() { SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString); System.Diagnostics.Debug.Write("\n GetBooksByAuthorAsync"); SqlCommand cmd = new SqlCommand("Select * from vwBooks", conn); //Async conn //int result = AsyncMethod(conn, cmd).Result; //Sync conn conn.Open(); System.Diagnostics.Debug.Write("\n End async"); SqlDataReader read = cmd.ExecuteReader(); //Build json StringBuilder sb = new StringBuilder(); StringWriter sw = new StringWriter(sb); using (JsonWriter jsonWriter = new JsonTextWriter(sw)) { jsonWriter.WriteStartArray(); while (read.Read()) { jsonWriter.WriteStartObject(); int fields = read.FieldCount; for (int i = 0; i < fields; i++) { jsonWriter.WritePropertyName(read.GetName(i)); jsonWriter.WriteValue(read[i]); } jsonWriter.WriteEndObject(); } jsonWriter.WriteEndArray(); } return sw.ToString(); }
public string ToJsonString() { /* * NB: JsonTextWriter is guaranteed to close the StringWriter * https://github.com/JamesNK/Newtonsoft.Json/blob/master/Src/Newtonsoft.Json/JsonTextWriter.cs#L150-L160 */ var sb = new StringBuilder(); var sw = new StringWriter(sb); using (JsonWriter jw = new JsonTextWriter(sw)) { jw.WriteStartArray(); jw.WriteValue(FunctionName); jw.WriteEndArray(); } return sb.ToString(); }
public static void SerializeMessage(JsonTextWriter writer, ServiceType type, object message) { Require.NotNull(writer, "writer"); Require.NotNull(type, "type"); Require.NotNull(message, "message"); writer.WriteStartObject(); foreach (var field in type.Fields.Values) { writer.WritePropertyName(field.Tag.ToString(CultureInfo.InvariantCulture)); object value = field.Getter(message); if (value == null) { writer.WriteNull(); } else if (field.CollectionType != null) { writer.WriteStartArray(); foreach (object item in (IEnumerable)value) { if (field.ServiceType != null) SerializeMessage(writer, field.ServiceType, item); else writer.WriteValue(item); } writer.WriteEndArray(); } else { if (field.ServiceType != null) SerializeMessage(writer, field.ServiceType, value); else writer.WriteValue(value); } } writer.WriteEndObject(); }
/// <summary> /// 根据父级id获取下级 /// </summary> /// <param name="id">父级id</param> /// <returns></returns> public string GetAreaByJson(string id) { //查询状态 bool Status = false; //根据父级id获取下级 List<Province> list = new ProvinceDAL().GetArea(id); //转化为json格式 StringBuilder json = new StringBuilder(); StringWriter sw = new StringWriter(json); using (JsonWriter jsonWriter = new JsonTextWriter(sw)) { jsonWriter.Formatting = Formatting.Indented; //判断数据读取状态 if (list.Count() > 0) { Status = true; } jsonWriter.WriteStartObject(); jsonWriter.WritePropertyName("Status"); jsonWriter.WriteValue(Status); jsonWriter.WritePropertyName("Data"); jsonWriter.WriteStartArray(); if (Status == true) { foreach (Province dbInfo in list) { jsonWriter.WriteStartObject(); jsonWriter.WritePropertyName("CodeId"); jsonWriter.WriteValue(dbInfo.Id); jsonWriter.WritePropertyName("CityName"); jsonWriter.WriteValue(dbInfo.CityName); jsonWriter.WriteEndObject(); } } jsonWriter.WriteEndArray(); jsonWriter.WriteEndObject(); } return json.ToString(); }
public async void TestMethod1() { using (_client = new HttpClient()) { var sb = new StringBuilder(); var sw = new StringWriter(sb); using (JsonWriter writer = new JsonTextWriter(sw)) { writer.Formatting = Formatting.Indented; writer.WriteStartObject(); writer.WritePropertyName("deviceId"); writer.WriteValue(_deviceId[0]); writer.WritePropertyName("command"); writer.WriteStartObject(); writer.WritePropertyName("commandName"); writer.WriteValue(_commandName[0]); writer.WritePropertyName("parameters"); writer.WriteStartArray(); writer.WriteStartObject(); writer.WritePropertyName("name"); writer.WriteValue("switchOn"); writer.WritePropertyName("value"); writer.WriteValue("true"); writer.WriteEndObject(); writer.WriteEndArray(); writer.WriteEndObject(); writer.WriteEndObject(); var content = new StringContent(sb.ToString()); await _client.PostAsync("http://localhost:54863/commands", content); } var response = await _client.GetAsync("http://localhost:54863/commands/" + _deviceId[0] + "/" + _timeout[0]); var expected = JObject.Parse(await response.Content.ReadAsStringAsync()); var actual = JObject.Parse(sb.ToString()); Assert.AreEqual(expected.SelectToken("$..command"), actual.SelectToken("$..command")); } }
protected override ArraySegment <byte> SerializeObject(object value) { var type = value.GetType(); var typeName = writeCache.GetOrAdd(type, TypeHelper.BuildTypeName); // Get type or Register type using (var ms = new MemoryStream()) using (var tw = new StreamWriter(ms)) using (var jw = new Newtonsoft.Json.JsonTextWriter(tw)) { jw.WriteStartArray(); // [ jw.WriteValue(typeName); // "type", jsonSerializer.Serialize(jw, value); // obj jw.WriteEndArray(); // ] jw.Flush(); return(new ArraySegment <byte>(ms.ToArray(), 0, (int)ms.Length)); } }
/// <summary> /// Writes the records schema in JSON format /// </summary> /// <param name="writer">JSON writer</param> /// <param name="names">list of named schemas already written</param> /// <param name="encspace">enclosing namespace of the record schema</param> protected internal override void WriteJsonFields(Newtonsoft.Json.JsonTextWriter writer, SchemaNames names, string encspace) { base.WriteJsonFields(writer, names, encspace); // we allow reading for empty fields, so writing of records with empty fields are allowed as well if (request) { writer.WritePropertyName("request"); } else { writer.WritePropertyName("fields"); } writer.WriteStartArray(); if (null != this.Fields && this.Fields.Count > 0) { foreach (Field field in this) { field.writeJson(writer, names, this.Namespace); // use the namespace of the record for the fields } } writer.WriteEndArray(); }
public override byte[] GenerateBody(SendDirectMessageOptions args) { using (var tw = new System.IO.StringWriter()) using (var writer = new Newtonsoft.Json.JsonTextWriter(tw)) { writer.WriteStartObject(); writer.WritePropertyName("event"); writer.WriteStartObject(); writer.WritePropertyName("type"); writer.WriteValue("message_create"); writer.WritePropertyName("message_create"); writer.WriteStartObject(); writer.WritePropertyName("target"); writer.WriteStartObject(); writer.WritePropertyName("recipient_id"); writer.WriteValue(args.Recipientid); writer.WriteEndObject(); writer.WritePropertyName("message_data"); writer.WriteStartObject(); writer.WritePropertyName("text"); writer.WriteValue(args.Text); if (args.Mediaid != null) { writer.WritePropertyName("attachment"); writer.WriteStartObject(); writer.WritePropertyName("type"); writer.WriteValue(args.Mediatype); writer.WritePropertyName("media"); writer.WriteStartObject(); writer.WritePropertyName("id"); writer.WriteValue(args.Mediaid); writer.WriteEndObject(); writer.WriteEndObject(); } if (args.Quickreplies?.Any() ?? false) { writer.WritePropertyName("quick_reply"); writer.WriteStartObject(); writer.WritePropertyName("type"); writer.WriteValue("options"); writer.WritePropertyName("options"); writer.WriteStartArray(); foreach (var qr in args.Quickreplies) { writer.WriteStartObject(); writer.WritePropertyName("label"); writer.WriteValue(qr.Label); writer.WritePropertyName("description"); writer.WriteValue(qr.Description); writer.WritePropertyName("metdata"); writer.WriteValue(qr.Metadata); writer.WriteEndObject(); } writer.WriteEndArray(); writer.WriteEndObject(); } writer.WriteEndObject(); writer.WriteEndObject(); writer.WriteEndObject(); writer.WriteEndObject(); return(System.Text.UTF8Encoding.UTF8.GetBytes(tw.ToString())); } }
/// <summary>写入列表对象结束标记。</summary> public void WriteEndArray() { _textWriter.WriteEndArray(); _textWriter.WriteEndObject(); }
public void ExportProductsJson(string path, string storagePath, int workProcessID, bool zipIt = true) { try { bool cancelRequested; workProcessService.Update(workProcessID, "Export started", 0); var totalAll = db.Categories.Count() + db.Products.Count() + db.OptionCategories.Count() + db.Options.Count() + db.Uploads.Count(); var countAll = 0; var fileName = "Products_" + DateTime.Now.ToString("yyyyMMddTHHmmss"); var serializer = new JsonSerializer(); serializer.Converters.Add(new JavaScriptDateTimeConverter()); serializer.NullValueHandling = NullValueHandling.Ignore; serializer.Formatting = Formatting.Indented; serializer.ContractResolver = new CamelCasePropertyNamesContractResolver(); using (var sw = new StreamWriter(Path.Combine(path, fileName + ".json"))) using (JsonWriter writer = new JsonTextWriter(sw)) { writer.WriteStartObject(); #region Write categories writer.WritePropertyName("categories"); writer.WriteStartArray(); var count = 0; var total = categoryService.FindAll().Count(); foreach (var category in categoryService.FindAll().OrderBy(c => c.Id).InChunksOf(100)) { serializer.Serialize(writer, new { category.Id, category.Name, category.ParentId, category.Description, category.IsVisible, SortOrder = category.SortOrder.AsNullIfDefault() }); count++; countAll++; if (count % 100 == 0) { workProcessService.Update(workProcessID, string.Format("Exporting product categories ({0} of {1})", count, total), ((double)countAll / totalAll) * 100.0, out cancelRequested); if (cancelRequested) { return; } } } writer.WriteEndArray(); #endregion #region Write option categories writer.WritePropertyName("optionCategories"); writer.WriteStartArray(); count = 0; total = db.OptionCategories.Count(); foreach (var category in db.OptionCategories.OrderBy(c => c.Id).InChunksOf(100)) { serializer.Serialize(writer, new { category.Id, category.Name, category.Description, category.Type, category.IncludeInFilters }); count++; countAll++; if (count % 100 == 0) { workProcessService.Update(workProcessID, string.Format("Exporting option categories ({0} of {1})", count, total), ((double)countAll / totalAll) * 100.0, out cancelRequested); if (cancelRequested) { return; } } } writer.WriteEndArray(); #endregion #region Write options writer.WritePropertyName("options"); writer.WriteStartArray(); count = 0; total = db.Options.Count(); foreach (var option in db.Options.OrderBy(o => o.Id).InChunksOf(100)) { serializer.Serialize(writer, new { option.Id, option.Name, option.OptionCategoryId, option.Description, }); count++; countAll++; if (count % 100 == 0) { workProcessService.Update(workProcessID, string.Format("Exporting options ({0} of {1})", count, total), ((double)countAll / totalAll) * 100.0, out cancelRequested); if (cancelRequested) { return; } } } writer.WriteEndArray(); #endregion #region Write products writer.WritePropertyName("products"); writer.WriteStartArray(); count = 0; total = productFinder.FindAll().Count(); foreach (var product in productFinder.FindAll().OrderBy(p => p.Id).InChunksOf(100)) { serializer.Serialize(writer, new { product.Id, product.Sku, product.Name, product.Price, product.CostPrice, product.RetailPrice, product.SalePrice, Weight = product.Weight.AsNullIfDefault(), product.Quantity, product.Description, product.Keywords, product.IsFeatured, product.IsVisible, Categories = product.Categories.Select(c => c.Id).ToArray(), TaxClass = product.TaxClass != null ? product.TaxClass.Name : null, Sections = product.Sections.Select(s => new { s.Title, s.Type, s.Position, s.Settings, s.Priority }).ToArray(), Options = product.Options.Select(o => o.Id).ToArray(), Uploads = product.Uploads.Select(u => new { u.Id, u.SortOrder, u.Type }).ToArray(), Skus = product.Skus.Select(s => new { s.Sku, s.UPC, s.Quantity, s.Price, s.Weight, Options = s.Options.Select(o => o.Id).ToArray(), Uploads = s.Uploads.Select(u => u.Id).ToArray() }) }); count++; countAll++; if (count % 100 == 0) { workProcessService.Update(workProcessID, string.Format("Exporting products ({0} of {1})", count, total), ((double)countAll / totalAll) * 100.0, out cancelRequested); if (cancelRequested) { return; } } } writer.WriteEndArray(); #endregion writer.WriteEndObject(); } if (zipIt) { using (var zip = new ZipFile(Path.Combine(path, fileName + ".zip"))) { zip.AddFile(Path.Combine(path, fileName + ".json"), "").FileName = "Export.json"; zip.Save(); foreach (var upload in db.Uploads.Where(u => u.Type == UploadType.ProductImage) .OrderBy(u => u.Id).InChunksOf(100)) { zip.AddFile(Path.Combine(storagePath, upload.Id.ToString()), "") .FileName = upload.Id + ".jpg"; } zip.SaveProgress += delegate(object sender, SaveProgressEventArgs args) { if (args.EntriesSaved == 0 || args.EntriesSaved % 100 != 0) { return; } workProcessService.Update(workProcessID, string.Format("Archiving photos ({0} of {1})", args.EntriesSaved, args.EntriesTotal), ((double)(countAll + args.EntriesSaved) / totalAll) * 100.0, out cancelRequested); if (cancelRequested) { args.Cancel = true; } }; zip.Save(); } File.Delete(Path.Combine(path, fileName + ".json")); } workProcessService.Update(workProcessID, "Export completed", 100, isComplete: true); } catch (Exception err) { try { workProcessService.Update(workProcessID, "Export failed", 100, isComplete: true, error: err.Message); } catch { // Probably db issue; do not throw exception to avoid thread kill } } }
public static void Notice(UserManager.UserClass _user) { StringBuilder sb = new StringBuilder(); StringWriter sw = new StringWriter(sb); using (JsonWriter writer = new JsonTextWriter(sw)) { writer.Formatting = Formatting.None; writer.WriteStartArray(); writer.WriteValue((int)ServerOpcode.room_state); writer.WriteStartArray(); writer.WriteStartArray(); writer.WriteValue("GameServerDB"); writer.WriteValue(""); writer.WriteValue(9); writer.WriteEndArray(); writer.WriteStartArray(); writer.WriteValue("Bienvenido!"); writer.WriteValue(""); writer.WriteValue(9); writer.WriteEndArray(); writer.WriteEndArray(); writer.WriteEndArray(); } _user.sep.Send(sb.ToString()); }