需求:由于公司想做个小程序跟APP跟金蝶数据联通,所以需要使用到金蝶的WebApi,但是WebApi的单据查询返回来的数据格式是 格式一:[[value1,value2],[value1,value2],[value1,value2]] 这种的,这种格式的数据如果不做处理给前端的话,会让前端摸不着头脑,更有甚者会让我们去医院测wifi信号,为了避免这种情况的发生,我们需要把数据格式进行处理成 格式二:[{key1:value1,key2:value2},{key1:value1,key2:value2}] 这种形式
- 格式一数据示例:[[100003,"BLD20220620001"],[100011,"BLD202206280001"]]
- 格式二数据示例:[{"FID": 100741,"FBillNo": "BLD2022070006"},{"FID": 100742,"FBillNo": "BLD2022070007"}]
- c#解决代码:/// <summary>
/// 调用金蝶WebApi后创建返回Key:Value形式数据
/// </summary>
/// <param name="FieldKeys">需要查询的字段 例:"FID,FBillNo,FName"</param>
/// <param name="ExecuteQueryReturnData">调用金蝶的单据查询接口后返回的数据</param>
/// <returns></returns>
public JArray CreateJArrayDataResult(string FieldKeys,string ReturnDataStr)
{
String[] FieldKey = FieldKeys.Split(",");
JArray ReturnDataJArr = JArray.Parse(ReturnDataStr);
if (FieldKey.Length <= 0 || ReturnDataJArr.Count <= 0)
throw new Exception("传入参数有误!");
JArray ResultArr = new JArray();
foreach (var item in ReturnDataJArr)
{
JObject newJobj = new JObject();
JArray FieldArr = (JArray)item;
for (int i = 0; i < FieldArr.Count; i++)
{
newJobj.Add(FieldKey[i], FieldArr[i]);
}
ResultArr.Add(newJobj);
}
return ResultArr;
}
推荐阅读