编程技术 · 2022 年 12 月 01 日 0

JArray 查寻指定对象, jarray 取值

查询JArray 列表找到指定字段为指定值的对象

JArray jsonarray = JArray.Parse("[{'Id':3, 'Name': 'Product3'}, {'Id':1, 'Name': 'Product1'}, {'Id':2, 'Name': 'Product2'}]");

var name = jsonarray.FirstOrDefault(x => x.Value<int>("Id") == 1).Value<string>("Name");

实例:

JArray line_list = new JArray();

if (dt_base != null && dt_base.Rows.Count > 0)
{
foreach (DataRow item in dt_base.Rows)
{

JObject jsonChild = new JObject(); 
jsonChild.Add("BATCH_NO", Guid.NewGuid().ToString("N").ToUpper());//单据编号 
jsonChild.Add("PLAN_START_DATE", Convert.ToDateTime(date_time).ToString("yyyy-MM-01 00:00:00"));//计划起始日期(必输,2019-05-01 00:00:00)
jsonChild.Add("PLAN_CMPLT_DATE", Convert.ToDateTime(date_time).AddMonths(1).ToString("yyyy-MM-01 00:00:00"));//计划结束日期(必输,2019-05-01 00:00:00)

line_list.Add(jsonChild);
}
}

var jt = line_list.FirstOrDefault(x => x.Value<string>("BATCH_ID") == "56E61669C6D24A8388373E0ADBB56E5C");
string PLAN_START_DATE = jt.Value<string>("PLAN_START_DATE");
string BATCH_NO = jt.Value<string>("BATCH_NO");

foreach JArray 循环JArray

 
JArray list = JArray.Parse(costcenter_list.ToString());

StringBuilder values_sql = new StringBuilder("");
foreach (JObject jo in list)
{
values_sql.Append($@"(
'{Guid.NewGuid().ToString("N").ToUpper()}' 
,'{jo.GetValue("LINE_TYPE")}'
,'{jo.GetValue("LINE_NUMBER")}'
,'{jo.GetValue("FORMULALINE_ID")}'
,'{jo.GetValue("LINE_ID")}'
,'{jo.GetValue("STATUS")}'
,N'{jo.GetValue("MESSAGE")}'
,'{dt}'
)");


values_sql.Append(",");

}