C# 将.csv文件完全转换为Json数据,并在Json数据中进行过滤 for(int i=1;i
我做了一个从csv到json的转换。json数据的输出是FINALJSON。现在,从FINALJSON开始,我只需要获得必需的字段C# 将.csv文件完全转换为Json数据,并在Json数据中进行过滤 for(int i=1;i,c#,json,C#,Json,我做了一个从csv到json的转换。json数据的输出是FINALJSON。现在,从FINALJSON开始,我只需要获得必需的字段 这是我的数据: [{“Ccsv”:“S124”,“利润”:“1240025”,“成本中心代码”:“124002503”,“说明”:“测试”,“状态”:“负责人所有者”:“20041882”},{“Ccsv”:“S136”,“利润”:“1360007”,“成本中心代码”:“136000799”,“说明”:“默认工资单”,“状态”:“负责人所有者”:“SSC”},{“
这是我的数据:
名称空间导入程序 输出:[{“Ccsv”:“S124”,“利润”:“1240025”,“成本中心代码”:“124002503”,“说明”:“测试”,“状态”:“负责人所有者”:“20041882”},{“Ccsv”:“S136”,“利润”:“1360007”,“成本中心代码”:“136000799”,“说明”:“默认工资单”,“状态”:“负责人所有者”:“SSC”},{“Ccsv”:“S800”,“利润”:“8000001”,“成本中心代码”:“800000201”、“描述”:“SERCOCALEDONISL2”、“状态”:“责任人”所有者”:“20120730”}、{“Ccsv”:“s802”、“利润”:“80000002”、“成本中心代码”:“8.00E+58”、“描述”:“sdfergfertxzfcx”、“状态”:“责任人所有者”:“3641212”}\]
我只需要获取csv和利润栏。我希望它能为您提供帮助for (int i = 1; i < lines.Length; i++) { var objResult = new Dictionary<string, string>(); for (int j = 0; j < props.Length; j++) { objResult.Add(props[j], csv[i][j]); listObjResult.Add(objResult); } string FINALJSON = JsonConvert.SerializeObject(listObjResult); }
您的JSON似乎是一个对象数组,您只想从中检索两个字段,这样您就可以尝试下面的代码了注意:您需要从package manager控制台添加newtonsoft.json nuget包,然后使用newtonsoft.json.Linq;JObject obj = JObject.Parse(json); var ccsv=obj.SelectToken("Ccsv"); var profit=obj.SelectToken("Profit");
如果您只需要ccsv和profit,为什么不在序列化为JSON之前过滤这些内容?这似乎是浪费了很多精力。谢谢。但是如果将来需要其他列,我就不能正确地使用。因此,首先我需要将整列转换为JSON并进行过滤。希望能帮助我将.csv转换为JSON数据。但我想知道如何过滤js关于FINALJSON中存在的数据并仅获得两列的输出SSO您是否将从CSV转换的JSON保存在某个位置,然后对其进行过滤以生成第二个仅包含两个属性的JSON文档?是的。我将该结果存储在FINALJSON中。现在我需要过滤FINALJSON数据并在第二个结果中获得所需的属性非常感谢。我将尝试让您知道从jsonreader读取Jobject时出错。当前jsonreader项不是对象:开始数组”,第1行,位置1。。。。。。。。。。。。。。。。。。。。。我犯了这个错误。我现在要做的是谢谢你。我试试看。但问题是,最终结果也是JSON键值对格式。@Tej,在回答中查看编辑1部分。当然,我会尝试尽快让您知道您给出的最终代码运行良好。非常感谢#champion注释代码是在.csv到json转换过程中出现的,并且是在序列化之前。不管怎样,以前的工作很好。如果有的话,我会的。
string json = FINALJSON;
JArray jArray = JArray.Parse(json);
var result = jArray.Select(x => new { Ccsv = x["Ccsv"], Profit = x["Profit"] }).ToList();
JArray outputJArray = JArray.FromObject(result);
//---------------Print result to console---------------
Console.WriteLine(outputJArray.ToString());