【问题标题】:how to pass jsonEncode http post?如何传递 jsonEncode http post?
【发布时间】:2021-12-28 09:49:20
【问题描述】:

我得到了所有参数 jsonEncode 然后我将通过 http post。 我已经在下面通过源代码进行了解释。

 var abc =  jsonEncode({
        "requisitionID": "x",
        "RetailerTitle": "Faruqe Ahmed  Store",
        "RetailerAddress" : "Dhaka Nilkhet",
        "Market": "Nilkhet",
        "RetailerAreaType":"R",
        "RetailerType":"R",
        "RetailerProprieterName": "Faruqe Ahmed",
        "RetailerContactNumber": "01736611372",
        "Longitude": "Longitude",
        "Lattitude": "Lattitude",
        "Thana": {"ThanaID": "Shahbag"},
        "District": {"DistrictID": "Dhaka"},
        "EntryParameter": {"CompanyID": "x"},
        "EntryParameter": {"LocationID": "x"},
        "EntryParameter": {"MachineID": "x"},
        "EntryParameter": {"EntryBy": "D180064"},
        "EntryParameter": {"UpdateBy": "x"},
        "ImageFieldBanner": ""
      }),

但是当我从 print(abc .toString()) 获取字符串时。然后 我只有

{
        "requisitionID": "x",
        "RetailerTitle": "Faruqe Ahmed  Store",
        "RetailerAddress" : "Dhaka Nilkhet",
        "Market": "Nilkhet",
        "RetailerAreaType":"R",
        "RetailerType":"R",
        "RetailerProprieterName": "Faruqe Ahmed",
        "RetailerContactNumber": "01736611372",
        "Longitude": "Longitude",
        "Lattitude": "Lattitude",
        "Thana": {"ThanaID": "Shahbag"},
        "District": {"DistrictID": "Dhaka"},
        "EntryParameter": {"UpdateBy": "x"},
        "ImageFieldBanner": ""
      }

跳过

   "EntryParameter": {"CompanyID": "x"},
        "EntryParameter": {"LocationID": "x"},
        "EntryParameter": {"MachineID": "x"},
        "EntryParameter": {"EntryBy": "D180064"},

我需要

{
        "requisitionID": "x",
        "RetailerTitle": "Faruqe Ahmed  Store",
        "RetailerAddress" : "Dhaka Nilkhet",
        "Market": "Nilkhet",
        "RetailerAreaType":"R",
        "RetailerType":"R",
        "RetailerProprieterName": "Faruqe Ahmed",
        "RetailerContactNumber": "01736611372",
        "Longitude": "Longitude",
        "Lattitude": "Lattitude",
        "Thana": {"ThanaID": "Shahbag"},
        "District": {"DistrictID": "Dhaka"},
        "EntryParameter": {"CompanyID": "x"},
        "EntryParameter": {"LocationID": "x"},
        "EntryParameter": {"MachineID": "x"},
        "EntryParameter": {"EntryBy": "D180064"},
        "EntryParameter": {"UpdateBy": "x"},
        "ImageFieldBanner": ""
      }

【问题讨论】:

    标签: android json flutter http jsonencoder


    【解决方案1】:

    你给 jsonEncode 方法的参数是一个 Map,一个 map 使用唯一的键来访问它的值。

    您的地图多次使用“EntryParameter”键,这会导致同一个值被多次覆盖,而只保留最后一个值。

    要解决这个问题,如果输出结构很重要,您可能需要将键值对放在一个数组中并自己创建所需的 json 代码。

    示例

    未经测试的代码,但应该清楚如何做到这一点,变量 jsonManualData 应该包含您需要的确切 json 字符串:

    Map<String, dynamic> data = {
      "requisitionID": "x",
      "RetailerTitle": "Faruqe Ahmed  Store",
      "RetailerAddress": "Dhaka Nilkhet",
      "Market": "Nilkhet",
      "RetailerAreaType": "R",
      "RetailerType": "R",
      "RetailerProprieterName": "Faruqe Ahmed",
      "RetailerContactNumber": "01736611372",
      "Longitude": "Longitude",
      "Lattitude": "Lattitude",
      "Thana": {"ThanaID": "Shahbag"},
      "District": {"DistrictID": "Dhaka"},
      "EntryParameter": [
        {"CompanyID": "x"},
        {"LocationID": "x"},
        {"MachineID": "x"},
        {"EntryBy": "D180064"},
        {"UpdateBy": "x"},
      ],
      "ImageFieldBanner": ""
    };
    
    String jsonData = jsonEncode(data);
    String jsonManualData = "{${data.entries.map((e) => '"${e.key}": ${jsonEncode(e.value)}').join(",")}}";
    

    【讨论】:

    • 请举例
    • 添加示例..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-29
    • 2017-10-13
    • 2018-01-24
    • 1970-01-01
    • 2013-04-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多