Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 对每个JSON属性应用自定义格式_C#_Json.net_Choetl - Fatal编程技术网

C# 对每个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

ChoJSONWriter或Newtonsoft是否支持对每个JSON属性应用自定义格式。从数据源中提取数据后,我希望对每个JSON记录应用以下格式

{
  "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文件。您可以发布包含输入和预期输出的示例代码吗?