C# 对每个JSON属性应用自定义格式
ChoJSONWriter或Newtonsoft是否支持对每个JSON属性应用自定义格式。从数据源中提取数据后,我希望对每个JSON记录应用以下格式C# 对每个JSON属性应用自定义格式,c#,json.net,choetl,C#,Json.net,Choetl,ChoJSONWriter或Newtonsoft是否支持对每个JSON属性应用自定义格式。从数据源中提取数据后,我希望对每个JSON记录应用以下格式 { "Place": "{0}", "SkuNumber": "SKU_{1}" } 我可以通过查看每条记录并应用String.Format手动完成,但我不想重新发明轮子。这就是使用Cinchoo ETL向每个成员添加自定义格式的方法 动态方法: StringBuilder sb = new StringBuilder(); using
{
"Place": "{0}",
"SkuNumber": "SKU_{1}"
}
我可以通过查看每条记录并应用String.Format手动完成,但我不想重新发明轮子。这就是使用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());
public class PlaceObj
{
public string Place { get; set; }
public int SkuNumber { get; set; }
}
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());
POCO:
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());
public class PlaceObj
{
public string Place { get; set; }
public int SkuNumber { get; set; }
}
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());
POCO方法:
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());
public class PlaceObj
{
public string Place { get; set; }
public int SkuNumber { get; set; }
}
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());
StringBuilder sb=新建StringBuilder();
使用(var w=新的ChoJSONWriter(sb)
.WithField(m=>m.SkuNumber,valueConverter:(o)=>String.Format(“SKU{0}”,o.ToNString())
)
{
PlaceObj o1=新的PlaceObj();
o1.Place=“1”;
o1.1编号=100;
w、 写入(o1);
}
Console.WriteLine(sb.ToString());
您能告诉我们您正在使用什么方法(动态/POCO)来创建JSON文件吗?示例代码很有帮助。感谢您的回答,但解决方案需要通用,因为我不知道将返回哪些字段,并且字段列表仅在运行时可用,因为数据源是CSV文件。您可以发布包含输入和预期输出的示例代码吗?