Minor Update:

- JSONparseCore:
  - Simplify & correct PrintObject() and PrintArray() logic
This commit is contained in:
Charl Wentzel
2017-08-18 05:21:09 +02:00
parent 01845022a1
commit 18b487cbdd

View File

@@ -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,28 +801,16 @@ 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 ); write( OutputHandle, Spacer, SpacerLen );
} }
else if (MultiLine) {
write( OutputHandle, Spacer, Indent-1 );
}
else {
write( OutputHandle, " ", 1 );
}
}
else {
write( OutputHandle, Spacer, SpacerLen );
}
}
// Print key name // Print key name
PrintString( Member->Name, strlen(Member->Name) ); PrintString( Member->Name, strlen(Member->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, " ", 1 );
else
write( OutputHandle, Spacer, SpacerLen ); 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,28 +890,16 @@ 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 ); write( OutputHandle, Spacer, SpacerLen );
} }
else if (MultiLine) {
write( OutputHandle, Spacer, Indent-1 );
}
else {
write( OutputHandle, " ", 1 );
}
}
else {
write( OutputHandle, Spacer, SpacerLen );
}
}
Last = (++Count >= Array->Len); Last = (++Count >= Array->Len);
switch (Member->Type) switch (Member->Type)
@@ -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, " ", 1 );
else
write( OutputHandle, Spacer, SpacerLen ); write( OutputHandle, Spacer, SpacerLen );
}
write( OutputHandle, "]", 1 ); write( OutputHandle, "]", 1 );
return true; return true;
} }