/    Sign up×
Community /Pin to ProfileBookmark

attribute bad formed in JSON data

Hi, I have a JSON data set parsed and at one point in the script I have this line:

[CODE]<a class=’dev’ href=”+page+” title=’+title+’ target=_blank>”+title+”</a>[/CODE]

The problem is that in any JSON data set I use the attribute “title” is bad formed and the result is the only first word from the data set which contains the title data. Why is so ?

to post a comment
JavaScript

6 Comments(s)

Copy linkTweet thisAlerts:
@tivrfoaFeb 01.2009 — post more code
Copy linkTweet thisAlerts:
@rnd_meFeb 01.2009 — make sure that title is a string, and that it does not contain an apostrophe, line break, or other invalid JSON string char.

if you need to, you can escape it with the function below:

[CODE]

function jx (s) {
if(!s.match){s=String(s);}
var m = {'b':"\b", ' ':"\t", 'n':"\n", 'f':"\f", 'r':"\r", '"':"\"", '\':"\\"};
if (/["\x00-x1f]/.test(s)) {
return """ + s.replace(/([x00-x1f\"])/g, function (a, b) {var c = m[b];if (c) {return c;}c = b.charCodeAt();return "\u00" + Math.floor(c / 16).toString(16) + (c &#37; 16).toString(16);}) + """;
}
return s;
}

[/CODE]
Copy linkTweet thisAlerts:
@akkadIIauthorFeb 02.2009 — the code is this:
[CODE]<script type="text/javascript">
var ix=0
function cback(obj)
{
var count=(obj.count);
while (ix<count)
{
var title=(obj.value.items[ix].title);
var pic=(obj.value.items[ix]["media:thumbnail"][0].url);
var author = (obj.value.items[ix]["media:credit"][0].content);
var page = (obj.value.items[ix].link);
var pub = (obj.value.items[ix].pubDate);
var dynDiv = document.createElement("div");
dynDiv.id = "p"+ix+"";
dynDiv.setAttribute('class',"SlidingPanelsContent")
dynDiv.innerHTML = ("<div style='border: 1px solid #000000;width:300px;height:272px;text-align:center;padding:3px;'><img class='show' src="+pic+" [B][COLOR="Red"]alt="+title+"[/COLOR][/B]/><br><a class='dev' href="+page+" title="+title+" target=_blank>"+title+"</a><br><p class='dev'>by: "+author+" on "+pub+"</p></div>")
document.getElementById('dv').appendChild(dynDiv);

ix=ix+1 ;
}
}
</script>
[/CODE]

In this case for example the attribute 'alt' of the image is "Elegant" instead of "Elegant Visions" (in bold red and scroll right to find it).
Copy linkTweet thisAlerts:
@akkadIIauthorFeb 02.2009 — make sure that title is a string, and that it does not contain an apostrophe, line break, or other invalid JSON string char.

if you need to, you can escape it with the function below:

[CODE]

function jx (s) {
if(!s.match){s=String(s);}
var m = {'b':"\b", ' ':"\t", 'n':"\n", 'f':"\f", 'r':"\r", '"':"\"", '\':"\\"};
if (/["\x00-x1f]/.test(s)) {
return """ + s.replace(/([x00-x1f\"])/g, function (a, b) {var c = m[b];if (c) {return c;}c = b.charCodeAt();return "\u00" + Math.floor(c / 16).toString(16) + (c % 16).toString(16);}) + """;
}
return s;
}

[/CODE]
[/QUOTE]


Actually there is a space between words and that might explain it.
Copy linkTweet thisAlerts:
@tivrfoaFeb 04.2009 — did you find a solution?

post all your html here and say what you want to happen.
Copy linkTweet thisAlerts:
@akkadIIauthorFeb 05.2009 — I was trying to add attributes to the JSON parsed data such as "alt", "title" and other characteristics, but i gave up since this page isn't indexed by search engines or at least useful for the user. But I've noticed some strange results. For example when retrieving a value as "long words" the result looks like this: [CODE]title="long" words=""[/CODE]
×

Success!

Help @akkadII spread the word by sharing this article on Twitter...

Tweet This
Sign in
Forgot password?
Sign in with TwitchSign in with GithubCreate Account
about: ({
version: 0.1.9 BETA 5.19,
whats_new: community page,
up_next: more Davinci•003 tasks,
coming_soon: events calendar,
social: @webDeveloperHQ
});

legal: ({
terms: of use,
privacy: policy
});
changelog: (
version: 0.1.9,
notes: added community page

version: 0.1.8,
notes: added Davinci•003

version: 0.1.7,
notes: upvote answers to bounties

version: 0.1.6,
notes: article editor refresh
)...
recent_tips: (
tipper: @AriseFacilitySolutions09,
tipped: article
amount: 1000 SATS,

tipper: @Yussuf4331,
tipped: article
amount: 1000 SATS,

tipper: @darkwebsites540,
tipped: article
amount: 10 SATS,
)...