Batch file để đọc một tệp và tạo JSON?


0

Tôi có một tệp văn bản với một số mục nhập theo định dạng sau:

code: SETX
id: 1
msg: Message for setx

code: SETY
id: 2
msg: Message for sety
msg_ja: Japanese message for sety

Như bạn có thể thấy, một số mục có thể có các khóa không có trong các mục khác (ví dụ: msg_ja là trong mục thứ hai, nhưng không phải trong mục đầu tiên).

Điều tôi cần bây giờ là đọc tệp văn bản này và tạo JSON từ nó. Ví dụ:

global_var.SETX = {
  id: 1,
  msg: "Message for setx"
};

global_var.SETY = {
  id: 2,
  msg: "Message for sety",
  msg_ja: "Japanese message for sety"
};

Làm thế nào tôi có thể làm điều này bằng cách sử dụng một tập tin bó?

Câu trả lời:


1

Đây là một khởi đầu. Chỉ có một vấn đề nhỏ: mục cuối cùng trong khối JSON vẫn kết thúc bằng dấu phẩy, nhưng đoạn mã này sẽ giúp bạn tiếp tục.

@echo off
Setlocal EnableDelayedExpansion

set first=1

for /f "tokens=1,2" %%i in (input.txt) do (    
    if "%%i"=="code:" (
        if !first! neq 1 (
            echo }
        )               
        echo global_var.%%j = {
    ) else (
        echo   %%i %%j,
    )
    set first=0
)
echo }

Cảm ơn! Đây là những gì tôi đã tìm kiếm. Một câu hỏi: Nếu không có dấu ngoặc kép xung quanh các giá trị phía bên phải, tôi nên thay đổi tập lệnh này như thế nào? (nó phá vỡ tại không gian)
thameera

Tôi tin rằng "mã thông báo = 1 *" sẽ đảm nhận việc đó
Berend
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.