69

Tôi đã nhận được một tệp JSON nhưng không biết cách đọc nó. Có công cụ chuyển đổi nào để tôi có thể tạo một tệp CSV đẹp để có thể tải nó vào MS Excel không? Tôi không hiểu JSON, vì vậy sẽ thật tuyệt vời nếu ai đó viết kịch bản hoặc liên kết tôi với một kịch bản sẽ thực hiện công việc.

Tôi đã tìm thấy một cái gì đó gần gũi tại http://json.bloople.net , nhưng thật không may, đó là JSON thành HTML.

Chỉnh sửa: jsonformat.com thậm chí còn gần hơn, tuy nhiên nó vẫn không phải là CSV.

|
65

Tôi không chắc chắn những gì bạn đang làm, nhưng điều này sẽ chuyển từ JSON sang CSV bằng JavaScript. Điều này đang sử dụng thư viện JSON nguồn mở , vì vậy chỉ cần tải JSON.js vào cùng thư mục bạn đã lưu mã bên dưới và nó sẽ phân tích giá trị JSON tĩnh json3vào CSV và nhắc bạn tải xuống / mở trong Excel.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>JSON to CSV</title>
    <script src="scripts/json.js" type="text/javascript"></script>
    <script type="text/javascript">
    var json3 = { "d": "[{\"Id\":1,\"UserName\":\"Sam Smith\"},{\"Id\":2,\"UserName\":\"Fred Frankly\"},{\"Id\":1,\"UserName\":\"Zachary Zupers\"}]" }

    DownloadJSON2CSV(json3.d);

    function DownloadJSON2CSV(objArray)
    {
        var array = typeof objArray != 'object' ? JSON.parse(objArray) : objArray;

        var str = '';

        for (var i = 0; i < array.length; i++) {
            var line = '';

            for (var index in array[i]) {
                line += array[i][index] + ',';
            }

            // Here is an example where you would wrap the values in double quotes
            // for (var index in array[i]) {
            //    line += '"' + array[i][index] + '",';
            // }

            line.slice(0,line.Length-1); 

            str += line + '\r\n';
        }
        window.open( "data:text/csv;charset=utf-8," + escape(str))
    }

    </script>

</head>
<body>
    <h1>This page does nothing....</h1>
</body>
</html>
|
  • 1

    Xin lỗi, không thực sự là một lập trình viên ở đây ... làm thế nào để tôi 'sử dụng' cái này?

    – Đặng Lan Chi 06:11:29 09/11/2010
  • 1

    Xin lỗi ... xin vui lòng chịu đựng với tôi ... tôi sẽ dán mã này vào chương trình nào? Nó có phải nằm trong cùng thư mục với các tệp JSON không?

    – Trịnh Thạch Thảo 06:49:58 09/11/2010
  • 1

    Đây là javascript, bạn chỉ cần dán nó vào một trang web và sử dụng nó để chuyển đổi JSON thành CSV ... Nếu bạn muốn nó lưu vào một tệp, bạn có thể thay thế "return str;" với "window.open (" dữ liệu: text / csv; charset = utf-8, "+ esc (str);".

    – Lý Trung Hiếu 07:07:25 09/11/2010
  • 1

    Đoạn mã trên dường như không xử lý trường hợp giá trị json có "," trong đó. ví dụ: "Sam, Smith". Có lẽ ai đó có thể xác nhận điều này.

    – Ngô Thiện Minh 05:46:40 12/04/2012
  • 1

    Có lẽ có ý nghĩa khi sử dụng thư viện CSV javascript như agnes.codeplex.com hoặc code.google.com/p/jquery-csv hơn là để cuộn tập lệnh viết CSV của riêng bạn.

    – Vũ Hữu Trí 21:48:11 03/03/2013
63

Tôi đã tạo ra một JsFiddle ở đây dựa trên câu trả lời được đưa ra bởi Zachary . Nó cung cấp một giao diện người dùng dễ tiếp cận hơn và cũng thoát khỏi dấu ngoặc kép trong chuỗi đúng.

|
  • 1

    Tôi đã rẽ nhánh nó để hỗ trợ các cặp khóa-giá trị bị thiếu jsfiddle.net/gonzif/MfJPF/1 Đối tượng JSON đầu tiên của bạn được sử dụng để xác định các khóa cột.

    – Đặng Lan Chi 19:25:13 10/10/2013
  • 1

    đó là mát mẻ, nhưng không hỗ trợ mảng json. do đó, nó không xử lý [{"Id": 1, "Tên người dùng": "Sam Smith", "Chi tiết": {"tóc": "đỏ", "mắt": "đỏ"}}]

    – Trịnh Thạch Thảo 09:15:31 12/03/2014
  • 1

    Ngoài ra, khi tôi nhấp vào tải xuống thì bắt đầu tải xuống với tên tệp "tải xuống" để không có phần mở rộng của tệp. Vì vậy, xin vui lòng cho tôi biết làm thế nào tôi có thể đổi tên tập tin.

    – Lý Trung Hiếu 00:10:14 09/07/2014
  • 1

    Nó không làm việc cho tôi

    – Ngô Thiện Minh 15:04:18 31/07/2017
  • 1

    Khi nhấp vào tải xuống trong fiddle, nó không tải xuống với phần mở rộng thích hợp (.csv). Bạn có thể vui lòng giúp đỡ về những thay đổi cần phải được thực hiện?

    – Vũ Hữu Trí 22:34:45 15/01/2018
1

Bạn có thể sử dụng ý chính đó, khá dễ sử dụng, lưu trữ cài đặt của bạn trong bộ nhớ cục bộ: https://gist.github.com/4533361

|
  • 1

    Tôi không hiểu những gì bạn muốn tôi nhập vào các ô "tiêu đề", "trích xuất các mục" hoặc "Chuyển đổi mục" cũng như những gì bạn muốn tôi thay đổi trong mã nguồn.

    – Đặng Lan Chi 05:53:45 17/12/2014

Câu trả lời của bạn (> 20 ký tự)

Bằng cách click "Đăng trả lời", bạn đồng ý với Điều khoản dịch vụ, Chính sách bảo mật and Chính sách cookie của chúng tôi.

Không tìm thấy câu trả lời bạn tìm kiếm? Duyệt qua các câu hỏi được gắn thẻ hoặc hỏi câu hỏi của bạn.