andles / x2js

Automatically exported from code.google.com/p/x2js

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Conversion doesn't escape reserved characters

GoogleCodeExporter opened this issue · comments


When converting JSON to an XML string, I found that reserved XML characters 
within the JSON tokens are not getting escaped. Can cause bad things to happen.

Haven't looked into it so I don't know if it's and issue, but you might want to 
check that you are escaping reserved JSON characters when converting from XML 
as well.

I can understand this might cause problems though if the tokens are already 
escaped, so you might want to make it an optional feature.

underscore.js has an escaping function for reference.

Original issue reported on code.google.com by reube...@gmail.com on 6 Jan 2013 at 4:29

Basic XML character escaping functionality is available in v1.0.10.
It will be great if you could test it in your environment. Thanks!

Original comment by abdulla....@gmail.com on 6 Jan 2013 at 12:26

  • Changed state: Done
Wow. That was fast o__O

It almost works, but not quite. It needs to check that the tokens being escaped 
are actually strings before it does so. I have some bool values in the object 
I'm testing with, and when the xml escaping is enabled, the console output is:

TypeError: str.replace is not a function

If I test with only strings it works fine. Any other type causes problems.

You probably want to add a check like:

if(typeof(str) != "string")

before trying to escape it.


Original comment by reube...@gmail.com on 7 Jan 2013 at 4:19

Wow. That was fast o__O

It almost works, but not quite. It needs to check that the tokens being escaped 
are actually strings before it does so. I have some bool values in the object 
I'm testing with, and when the xml escaping is enabled, the console output is:

TypeError: str.replace is not a function

If I test with only strings it works fine. Any other type causes problems.

You probably want to add a check like:

if(typeof(str) != "string")

before trying to escape it.


Original comment by reube...@gmail.com on 7 Jan 2013 at 4:20

er, that should be something more like


if(typeof(str) == "string")

Original comment by reube...@gmail.com on 7 Jan 2013 at 4:23

Fixed in v1.0.11. Thank you for additional check!

Original comment by abdulla....@gmail.com on 7 Jan 2013 at 11:25