Spaces:
Sleeping
Sleeping
import gradio as gr | |
import json | |
from typing import Dict, Any | |
def validate_json(json_text: str) -> Dict[str, Any]: | |
try: | |
parsed_json = json.loads(json_text) | |
return {"is_valid": True, "parsed_json": parsed_json} | |
except json.JSONDecodeError as e: | |
return {"is_valid": False, "error": str(e)} | |
def display_result(result: Dict[str, Any]) -> str: | |
if result["is_valid"]: | |
return f"JSON ζζγ解ζη΅ζοΌ\n{json.dumps(result['parsed_json'], indent=2, ensure_ascii=False)}" | |
else: | |
return f"JSON η‘ζγι―θͺ€οΌ{result['error']}" | |
def create_interface() -> gr.Blocks: | |
with gr.Blocks() as demo: | |
gr.Markdown("# JSON ι©θε¨") | |
with gr.Row(): | |
json_input = gr.Textbox(label="θ«θΌΈε ₯ JSON ζε", lines=5) | |
output = gr.Textbox(label="ι©θη΅ζ", lines=5) | |
validate_button = gr.Button("ι©θ JSON") | |
validate_button.click( | |
fn=lambda x: display_result(validate_json(x)), | |
inputs=json_input, | |
outputs=output | |
) | |
return demo | |
if __name__ == "__main__": | |
interface = create_interface() | |
interface.launch(share=True) |