diff --git a/misc/json.c b/misc/json.c index d1b2afddb6..d25e0f55c8 100644 --- a/misc/json.c +++ b/misc/json.c @@ -299,9 +299,11 @@ static int json_append(bstr *b, const struct mpv_node *src, int indent) case MPV_FORMAT_INT64: bstr_xappend_asprintf(NULL, b, "%"PRId64, src->u.int64); return 0; - case MPV_FORMAT_DOUBLE: - bstr_xappend_asprintf(NULL, b, "%f", src->u.double_); + case MPV_FORMAT_DOUBLE: { + const char *px = isfinite(src->u.double_) ? "" : "\""; + bstr_xappend_asprintf(NULL, b, "%s%f%s", px, src->u.double_, px); return 0; + } case MPV_FORMAT_STRING: write_json_str(b, src->u.string); return 0;