Tôi đang mã hóa một số dữ liệu bằng cách sử dụng mochijson2. Nhưng tôi thấy rằng nó hoạt động lạ trên chuỗi như danh sách.mochijson2 hoặc mochijson
Ví dụ:
mochijson2: mã hóa ("foo").
[91, "102", 44 "111", 44 "111", 93]
đâu "102", "111", "111" là $ f, $ o, $ o được mã hóa dưới dạng các chuỗi 44 là dấu phẩy và 91 và 93 là các ô vuông.
Tất nhiên nếu tôi xuất ra nơi này, tôi sẽ nhận được chuỗi "[102,111,111]" rõ ràng không phải là những gì tôi làm gì.
Nếu tôi cố gắng
mochijson2: mã hóa (< < "foo" >>).
[34, < < "foo" >>, 34]
Vì vậy, tôi một lần nữa tôi nhận được một danh sách của hai doublequotes và phần nhị phân trong đó có thể được dịch sang nhị phân với list_to_binary/1
Đây là câu hỏi - tại sao nó không phù hợp. Tôi hiểu rằng có một vấn đề distingushing erlang danh sách mà nên được mã hóa như json mảng và chuỗi erlang cần được mã hóa như json chuỗi, nhưng ít nhất nó có thể đầu ra nhị phân khi tôi vượt qua nó nhị phân?
Và câu hỏi thứ hai: Hình như mochijson kết quả đầu ra tất cả mọi thứ tốt đẹp (vì nó sử dụng tuple đặc biệt để chỉ định mảng {array, ...})
mochijson: mã hóa (< < "foo" >>).
"\" foo \ ""
Sự khác nhau giữa mochijson2 và mochijson là gì? Hiệu suất? Xử lý Unicode? Còn gì nữa không?
Cảm ơn
Cảm ơn câu trả lời của bạn, nhưng vẫn chưa rõ mọi thứ. Tôi đoán: trường hợp thứ hai của bạn <<"foo">> chuỗi trở thành "foo" không đúng hoặc [34, <<"foo">>, 34] tương đương với "foo"? hỗ trợ utf-8 trong mochijson là gì? khi tôi sử dụng mochijson2 tôi đã thêm {utf8, true} vào bộ mã hóa. –
Thử xóa: iolist_to_binary ([34, <<"foo">>, 34]). 34 là một ký tự đơn, <<"foo">> là ba ký tự chuỗi dài foo (w/o "), và số 34 là số khác". – Zed
Bất kể lời giải thích của bạn về i-ốt có một vấn đề khác. "Foo" không hợp lệ JSON và không thể dịch sang JSON hợp lệ –