mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-11-12 06:58:57 +01:00
Merge #18444: RPC: Remove final comma for last entry of fixed-size arrays/objects in RPCResult
c34164896c Bugfix: RPC: Remove final comma for last entry of fixed-size Arrays and Objects in RPCResult (Luke Dashjr)
Pull request description:
JSON doesn't allow a trailing comma in arrays
Top commit has no ACKs.
Tree-SHA512: 761502a05f447afc09c120f13bf23abd2aee83a7f5e5dadaf54c7e1c0c1280d83ee041ca6ca45998fb561e41b32d01067ec52a187c3bcc9d53303ea813bc212c
This commit is contained in:
@@ -293,7 +293,7 @@ UniValue JSONRPCTransactionError(TransactionError terr, const std::string& err_s
|
|||||||
struct Section {
|
struct Section {
|
||||||
Section(const std::string& left, const std::string& right)
|
Section(const std::string& left, const std::string& right)
|
||||||
: m_left{left}, m_right{right} {}
|
: m_left{left}, m_right{right} {}
|
||||||
const std::string m_left;
|
std::string m_left;
|
||||||
const std::string m_right;
|
const std::string m_right;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -645,6 +645,10 @@ void RPCResult::ToSections(Sections& sections, const OuterType outer_type, const
|
|||||||
}
|
}
|
||||||
if (m_type == Type::ARR) {
|
if (m_type == Type::ARR) {
|
||||||
sections.PushSection({indent_next + "...", ""});
|
sections.PushSection({indent_next + "...", ""});
|
||||||
|
} else {
|
||||||
|
CHECK_NONFATAL(!m_inner.empty());
|
||||||
|
// Remove final comma, which would be invalid JSON
|
||||||
|
sections.m_sections.back().m_left.pop_back();
|
||||||
}
|
}
|
||||||
sections.PushSection({indent + "]" + maybe_separator, ""});
|
sections.PushSection({indent + "]" + maybe_separator, ""});
|
||||||
return;
|
return;
|
||||||
@@ -658,6 +662,10 @@ void RPCResult::ToSections(Sections& sections, const OuterType outer_type, const
|
|||||||
if (m_type == Type::OBJ_DYN) {
|
if (m_type == Type::OBJ_DYN) {
|
||||||
// If the dictionary keys are dynamic, use three dots for continuation
|
// If the dictionary keys are dynamic, use three dots for continuation
|
||||||
sections.PushSection({indent_next + "...", ""});
|
sections.PushSection({indent_next + "...", ""});
|
||||||
|
} else {
|
||||||
|
CHECK_NONFATAL(!m_inner.empty());
|
||||||
|
// Remove final comma, which would be invalid JSON
|
||||||
|
sections.m_sections.back().m_left.pop_back();
|
||||||
}
|
}
|
||||||
sections.PushSection({indent + "}" + maybe_separator, ""});
|
sections.PushSection({indent + "}" + maybe_separator, ""});
|
||||||
return;
|
return;
|
||||||
|
|||||||
Reference in New Issue
Block a user