首页 > 解决方案 > Apply custom formatting to each JSON property

问题描述

Does the ChoJSONWriter or Newtonsoft support apply custom formatting to each JSON property. After pulling my data from the datasource I would like apply the following format to each JSON record.

{
  "Place": "{0}",
  "SkuNumber": "SKU_{1}"
}

I can do it manually by going through each record and applying String.Format but I dont want to reinvent the wheel.

标签: c#json.netchoetl

解决方案


这是您可以使用 Cinchoo ETL 为每个成员添加自定义格式的方法

动态方法:

StringBuilder sb = new StringBuilder();

using (var w = new ChoJSONWriter(sb)
    .WithField("Place")
    .WithField("SkuNumber", valueConverter: (o) => String.Format("SKU_{0}", o.ToNString()))
    )
{
    dynamic o1 = new ExpandoObject();
    o1.Place = 1;
    o1.SkuNumber = 100;

    w.Write(o1);
}

Console.WriteLine(sb.ToString());

POCO:

public class PlaceObj
{
    public string Place { get; set; }
    public int SkuNumber { get; set; }
}

POCO 方法:

StringBuilder sb = new StringBuilder();

using (var w = new ChoJSONWriter<PlaceObj>(sb)
    .WithField(m => m.SkuNumber, valueConverter: (o) => String.Format("SKU_{0}", o.ToNString()))
)
{
    PlaceObj o1 = new PlaceObj();
    o1.Place = "1";
    o1.SkuNumber = 100;

    w.Write(o1);
}

Console.WriteLine(sb.ToString());

推荐阅读