json loading bug ?

Monkey Forums/Monkey Programming/json loading bug ?

GC-Martijn(Posted 2015) [#1]
H!

I was testing a very simple thing with json but it keeps failing.

atlas.json
{~qscores~q:[[~qglfw~q,~q9800~q],[~qhmm~q,~q3400~q],[~qbenjamin~q,~q2600~q]]}


this code works
Strict

Import mojo
Import brl.json

Function Main:Int()
	New MyApp
	Return 0
End

Class MyApp Extends App
	Method OnCreate:Int()
		SetUpdateRate(60)		
		Local str:=LoadString("atlas.json")
		
		Print str
		Try
        	Local jso:JsonObject = New JsonObject("{~qscores~q:[[~qglfw~q,~q9800~q],[~qhmm~q,~q3400~q],[~qbenjamin~q,~q2600~q]]}")
    	Catch t:JsonError
        	Print "JsonError"
    	End

		Return 0
	End
	
	
	Method OnRender:Int()
		Cls(255, 255, 255)
		Return 0
	End
	
	
	Method OnUpdate:Int()
		Return 0
	End
	Method OnLoading:Int()
		Return 0
	End
	Method OnResize:Int()
		Return 0
	End
	Method OnSuspend:Int()
		Return 0
	End
	Method OnResume:Int()
		Return 0
	End	
	Method OnClose:Int()
		Return Super.OnClose()
	End 
	Method OnBack:Int()

		Return Super.OnBack()
	End
End


this code don't work
Strict

Import mojo
Import brl.json

Function Main:Int()
	New MyApp
	Return 0
End

Class MyApp Extends App
	Method OnCreate:Int()
		SetUpdateRate(60)		
		Local str:=LoadString("atlas.json")
		
		Print str ' <--- did have the right string (that I use in the script above)
		Try
        	Local jso:JsonObject = New JsonObject(str)
    	Catch t:JsonError
        	Print "JsonError" ' <--------
    	End

		Return 0
	End
	
	
	Method OnRender:Int()
		Cls(255, 255, 255)
		Return 0
	End
	
	
	Method OnUpdate:Int()
		Return 0
	End
	Method OnLoading:Int()
		Return 0
	End
	Method OnResize:Int()
		Return 0
	End
	Method OnSuspend:Int()
	
		Return 0
	End
	Method OnResume:Int()
		Return 0
	End	
	Method OnClose:Int()
		Return Super.OnClose()
	End 
	Method OnBack:Int()

		Return Super.OnBack()
	End
End


using ted/mac/ Glfw2 Glfw3 and html5 for quick testing.

edit
without the try/catch

opening openal device
Monkey Runtime Error : Uncaught Monkey Exception
/Applications/MonkeyXPro81b/modules/brl/json.monkey<6>
/Applications/MonkeyXPro81b/modules/brl/json.monkey<471>
/Applications/MonkeyXPro81b/modules/brl/json.monkey<449>
/Applications/MonkeyXPro81b/modules/brl/json.monkey<51>
/Users/gcmartijn/Documents/game1/game1.monkey<21>
/Applications/MonkeyXPro81b/modules/mojo/app.monkey<89>

TRANS FAILED: Error executing './MonkeyGame', return code=65280


Trez(Posted 2015) [#2]
The string you are loading needs Quotes in the string not the escape codes for monkeyx. If you replace all the ~q with " it will load fine.

Stuart


GC-Martijn(Posted 2015) [#3]
Ahh, I see it now.
My original code (with good json) din't work in the first place, then I did a forum search and copy past that string using this example:
http://www.monkey-x.com/Community/posts.php?topic=9338&post=97317&view=all#97317

After that it only was working using string but not using a textfile, but it makes sense.
Will check it later @home.

last edit yes its working.