WebApi单据查询返回的数据格式转为[{key:value}]的形式原创
金蝶云社区-NiceToMeetYou
NiceToMeetYou
19人赞赏了该文章 1,136次浏览 未经作者许可,禁止转载编辑于2022年07月21日 08:58:52
  1. 需求:由于公司想做个小程序跟APP跟金蝶数据联通,所以需要使用到金蝶的WebApi,但是WebApi的单据查询返回来的数据格式是   格式一:[[value1,value2],[value1,value2],[value1,value2]]   这种的,这种格式的数据如果不做处理给前端的话,会让前端摸不着头脑,更有甚者会让我们去医院测wifi信号,为了避免这种情况的发生,我们需要把数据格式进行处理成  格式二:[{key1:value1,key2:value2},{key1:value1,key2:value2}]  这种形式

  2. 格式一数据示例:[[100003,"BLD20220620001"],[100011,"BLD202206280001"]]
  3. 格式二数据示例:
    [
        {
            "FID"100741,
            "FBillNo""BLD2022070006"
        },
        {
            "FID"100742,
            "FBillNo""BLD2022070007"
        }
    ]
  4. 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;

       }

赞 19