Reputation: 3763
I understand its not a desirable circumstance, however if I NEEDED to have some kind of HTML within JSON tags, e.g.:
{
"node":
{
"list":"<ul><li class="lists">Hello World</li><ul>"
}
}
is this possible to do in Python without requiring to to be escaped beforehand?
It will be a string initially so I was thinking about writing a regular expression to attempt to match and escape these prior to processing, but I just want to make sure there isn't an easier way.
Upvotes: 3
Views: 8925
Reputation: 11044
Well, depending on how varied your HTML is, you can use single quotes in HTML fine, so you could do:
{
"node":
{
"list": "<ul><li class='lists'>Hello World</li><ul>"
}
}
However, with simplejson
, which is built into Python 2.6 as the json module, it does any escaping you need automatically:
>>> import simplejson
>>> simplejson.dumps({'node': {'list': '<ul><li class="lists">Hello World</li><ul>'}})
'{"node": {"list": "<ul><li class=\\"lists\\">Hello World</li><ul>"}}'
Upvotes: 7
Reputation: 881547
You can have arbitrary strings there, including ones which happen to contain HTML tags (the only issue with your example is the inner "
which would confuse any parser).
Upvotes: 1