Skip to content

Commit

Permalink
Fixed json parsing issue.
Browse files Browse the repository at this point in the history
  • Loading branch information
alisafdarct committed May 23, 2019
1 parent 8dcfde1 commit 59526d8
Showing 1 changed file with 18 additions and 8 deletions.
26 changes: 18 additions & 8 deletions Assets/FizzClient/Scripts/Common/FizzJson.cs
Original file line number Diff line number Diff line change
Expand Up @@ -249,6 +249,7 @@ public static JSONNode Parse(string aJSON)
case '{':
if (QuoteMode)
{
Token = (Token == null) ? "" : Token;
Token += aJSON[i];
break;
}
Expand All @@ -262,13 +263,14 @@ public static JSONNode Parse(string aJSON)
ctx.Add(TokenName,stack.Peek());
}
TokenName = "";
Token = "";
Token = null;
ctx = stack.Peek();
break;

case '[':
if (QuoteMode)
{
Token = (Token == null) ? "" : Token;
Token += aJSON[i];
break;
}
Expand All @@ -283,22 +285,23 @@ public static JSONNode Parse(string aJSON)
ctx.Add(TokenName,stack.Peek());
}
TokenName = "";
Token = "";
Token = null;
ctx = stack.Peek();
break;

case '}':
case ']':
if (QuoteMode)
{
Token = (Token == null) ? "" : Token;
Token += aJSON[i];
break;
}
if (stack.Count == 0)
throw new Exception("JSON Parse: Too many closing brackets");

stack.Pop();
if (Token != "")
if (Token != null)
{
TokenName = TokenName.Trim();
if (ctx is JSONArray)
Expand All @@ -307,14 +310,15 @@ public static JSONNode Parse(string aJSON)
ctx.Add(TokenName,Token);
}
TokenName = "";
Token = "";
Token = null;
if (stack.Count>0)
ctx = stack.Peek();
break;

case ':':
if (QuoteMode)
{
Token = (Token == null) ? "" : Token;
Token += aJSON[i];
break;
}
Expand All @@ -329,10 +333,11 @@ public static JSONNode Parse(string aJSON)
case ',':
if (QuoteMode)
{
Token = (Token == null) ? "" : Token;
Token += aJSON[i];
break;
}
if (Token != "")
if (Token != null)
{
if (ctx is JSONArray)
ctx.Add(Token);
Expand All @@ -350,14 +355,18 @@ public static JSONNode Parse(string aJSON)
case ' ':
case '\t':
if (QuoteMode)
{
Token = (Token == null) ? "" : Token;
Token += aJSON[i];
break;

}
break;

case '\\':
++i;
if (QuoteMode)
{
char C = aJSON[i];
Token = (Token == null) ? "" : Token;
switch (C)
{
case 't' : Token += '\t'; break;
Expand All @@ -376,8 +385,9 @@ public static JSONNode Parse(string aJSON)
}
}
break;

default:
Token = (Token == null) ? "" : Token;
Token += aJSON[i];
break;
}
Expand Down

0 comments on commit 59526d8

Please sign in to comment.