Minor Update:
- JSONparseCore: - Simplify & correct PrintObject() and PrintArray() logic
This commit is contained in:
@@ -788,7 +788,6 @@ bool CJSONparse::PrintObject( TDataMember * Object, const int Indent )
|
|||||||
TDataMember * Member;
|
TDataMember * Member;
|
||||||
bool First = true;
|
bool First = true;
|
||||||
bool Last = false;
|
bool Last = false;
|
||||||
bool MultiLine = false;
|
|
||||||
int Count = 0;
|
int Count = 0;
|
||||||
|
|
||||||
// Opening brace
|
// Opening brace
|
||||||
@@ -802,27 +801,15 @@ bool CJSONparse::PrintObject( TDataMember * Object, const int Indent )
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Save parameters
|
// Save parameters
|
||||||
MultiLine = (Object->Len > 1)? true : false;
|
|
||||||
for (Member = Object->FirstChild; Member != NULL; (Member = Member->Next))
|
for (Member = Object->FirstChild; Member != NULL; (Member = Member->Next))
|
||||||
{
|
{
|
||||||
// Whitespace around first bracket
|
// Whitespace around first bracket
|
||||||
if (Indent) {
|
if (Indent) {
|
||||||
if (First) {
|
if (First) {
|
||||||
First = false;
|
First = false;
|
||||||
if (Object->Name) {
|
write( OutputHandle, "\n", 1 );
|
||||||
write( OutputHandle, "\n", 1 );
|
|
||||||
write( OutputHandle, Spacer, SpacerLen );
|
|
||||||
}
|
|
||||||
else if (MultiLine) {
|
|
||||||
write( OutputHandle, Spacer, Indent-1 );
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
write( OutputHandle, " ", 1 );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
write( OutputHandle, Spacer, SpacerLen );
|
|
||||||
}
|
}
|
||||||
|
write( OutputHandle, Spacer, SpacerLen );
|
||||||
}
|
}
|
||||||
|
|
||||||
// Print key name
|
// Print key name
|
||||||
@@ -859,17 +846,15 @@ bool CJSONparse::PrintObject( TDataMember * Object, const int Indent )
|
|||||||
|
|
||||||
case jtArray :
|
case jtArray :
|
||||||
PrintArray( Member, Indent );
|
PrintArray( Member, Indent );
|
||||||
if (!MultiLine && Member->Len > 1) MultiLine = true;
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case jtObject :
|
case jtObject :
|
||||||
PrintObject( Member, Indent );
|
PrintObject( Member, Indent );
|
||||||
if (!MultiLine && Member->Len > 1) MultiLine = true;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (!Last)
|
if (!Last)
|
||||||
write( OutputHandle, ",", 1 );
|
write( OutputHandle, ",", 1 );
|
||||||
if (Indent && MultiLine)
|
if (Indent)
|
||||||
write( OutputHandle, "\n", 1 );
|
write( OutputHandle, "\n", 1 );
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -880,12 +865,8 @@ bool CJSONparse::PrintObject( TDataMember * Object, const int Indent )
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Closing brace
|
// Closing brace
|
||||||
if (Indent) {
|
if (Indent)
|
||||||
if (!MultiLine)
|
write( OutputHandle, Spacer, SpacerLen );
|
||||||
write( OutputHandle, " ", 1 );
|
|
||||||
else
|
|
||||||
write( OutputHandle, Spacer, SpacerLen );
|
|
||||||
}
|
|
||||||
write( OutputHandle, "}", 1 );
|
write( OutputHandle, "}", 1 );
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -896,7 +877,6 @@ bool CJSONparse::PrintArray( TDataMember * Array, const int Indent )
|
|||||||
TDataMember * Member;
|
TDataMember * Member;
|
||||||
bool First = true;
|
bool First = true;
|
||||||
bool Last = false;
|
bool Last = false;
|
||||||
bool MultiLine = false;
|
|
||||||
int Count = 0;
|
int Count = 0;
|
||||||
|
|
||||||
// Opening brace
|
// Opening brace
|
||||||
@@ -910,27 +890,15 @@ bool CJSONparse::PrintArray( TDataMember * Array, const int Indent )
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Save parameters
|
// Save parameters
|
||||||
MultiLine = (Array->Len > 1)? true : false;
|
|
||||||
for (Member = Array->FirstChild; Member != NULL; (Member = Member->Next))
|
for (Member = Array->FirstChild; Member != NULL; (Member = Member->Next))
|
||||||
{
|
{
|
||||||
// Whitespace around brace
|
// Whitespace around brace
|
||||||
if (Indent) {
|
if (Indent) {
|
||||||
if (First) {
|
if (First) {
|
||||||
First = false;
|
First = false;
|
||||||
if (Array->Name) {
|
write( OutputHandle, "\n", 1 );
|
||||||
write( OutputHandle, "\n", 1 );
|
|
||||||
write( OutputHandle, Spacer, SpacerLen );
|
|
||||||
}
|
|
||||||
else if (MultiLine) {
|
|
||||||
write( OutputHandle, Spacer, Indent-1 );
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
write( OutputHandle, " ", 1 );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
write( OutputHandle, Spacer, SpacerLen );
|
|
||||||
}
|
}
|
||||||
|
write( OutputHandle, Spacer, SpacerLen );
|
||||||
}
|
}
|
||||||
|
|
||||||
Last = (++Count >= Array->Len);
|
Last = (++Count >= Array->Len);
|
||||||
@@ -954,17 +922,15 @@ bool CJSONparse::PrintArray( TDataMember * Array, const int Indent )
|
|||||||
|
|
||||||
case jtArray :
|
case jtArray :
|
||||||
PrintArray( Member, Indent );
|
PrintArray( Member, Indent );
|
||||||
if (!MultiLine && Member->Len > 1) MultiLine = true;
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case jtObject :
|
case jtObject :
|
||||||
PrintObject( Member, Indent );
|
PrintObject( Member, Indent );
|
||||||
if (!MultiLine && Member->Len > 1) MultiLine = true;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (!Last)
|
if (!Last)
|
||||||
write( OutputHandle, ",", 1 );
|
write( OutputHandle, ",", 1 );
|
||||||
if (Indent && MultiLine)
|
if (Indent)
|
||||||
write( OutputHandle, "\n", 1 );
|
write( OutputHandle, "\n", 1 );
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -975,12 +941,8 @@ bool CJSONparse::PrintArray( TDataMember * Array, const int Indent )
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Closing brace
|
// Closing brace
|
||||||
if (Indent) {
|
if (Indent)
|
||||||
if (!MultiLine)
|
write( OutputHandle, Spacer, SpacerLen );
|
||||||
write( OutputHandle, " ", 1 );
|
|
||||||
else
|
|
||||||
write( OutputHandle, Spacer, SpacerLen );
|
|
||||||
}
|
|
||||||
write( OutputHandle, "]", 1 );
|
write( OutputHandle, "]", 1 );
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user