簡體   English   中英

將 csv 轉換為鍵控 json

[英]Convert csv to keyed json

我有包含如下數據的 csv 文件,沒有列標題

100271311,90445XXXX,Active
100271400,99456XXXX,Cancelled
100271552,94280XXXX,Pending

我想將上述內容轉換為如下所示的 php json 輸出

{
   "100271311": {
      "FIELD2": "90445XXXX",
      "FIELD3": "Active"
   },
   "100271400": {
      "FIELD2": "99456XXXX",
      "FIELD3": "Cancelled"
   },
   "100271552": {
      "FIELD2": "94280XXXX",
      "FIELD3": "Pending"
   }
}

請幫忙

你可以試試這個:

$file  = "csvfile.csv";
$csv   = file_get_contents($file);
$array = array_map("str_getcsv", explode("\n", $csv));
$json  = json_encode($array);
print_r($json);

注意: str_getcsv解析 CSV 格式字段的字符串輸入,並返回一個包含讀取字段的數組。

你可以試試:

  $file = file('pathtoyour/file.csv');
  $json = [];
  foreach ($file as $key => $row) {
    $cols = explode(',', $row);
    $json[trim($cols[0])] = [
      'FIELD2' => trim($cols[1]),
      'FIELD3' => trim($cols[2]),
    ];
  }
  die(json_encode($json));

使用fileexplodejson_encode函數的解決方案:

$lines = file("./data/test.csv");  // change with your actual file path
$result = [];

foreach ($lines as $line) {
    list($k, $f2, $f3) = explode(',', $line);
    $result[$k] = ['FIELD2' => $f2, 'FIELD3' => trim($f3)];
}

print_r(json_encode($result, JSON_PRETTY_PRINT));

輸出:

{
    "100271311": {
        "FIELD2": "90445XXXX",
        "FIELD3": "Active"
    },
    "100271400": {
        "FIELD2": "99456XXXX",
        "FIELD3": "Cancelled"
    },
    "100271552": {
        "FIELD2": "94280XXXX",
        "FIELD3": "Pending"
    }
}

您可以使用此站點將 csv 轉換為鍵控 JSON。

https://www.convertcsv.com/csv-to-json.htm

如何轉換有很多選擇。 只需選擇轉換類型按鈕。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM