/    Sign up×
Community /Pin to ProfileBookmark

JSON – Syntax question

Hi,
I’m doing my first steps with AJAX and JSON and managed to write a simple script to request the balance of an envato useraccount based on the username and API key entered in two input fields.

Now I want to keep playing with it and request the price of an item. I duplicated the code, but struggling to adjust my code as the JSON syntax the server delivered this time looks a bit different.

Here’s the JSON code I get back from the server for the balance request (which I can handle):
{“vitals”:{“username”:”MYUSERNAME”,”balance”:”801.65″}}

But the JSON code for the item request has a bracket more, that I probably need to add to my code:
{“item-prices”:[{“licence”:”Regular License”,”price”:”8.00″}]}

The complete API documentation is available at: [url]http://marketplace.envato.com/api/documentation[/url] (just in case someone needs that)

How do I need to adjust the following code to work???

[code=html]<!doctype html>
<html lang=”en”>
<head>
<meta charset=”utf-8″>
<title>jQuery.getJSON demo</title>
<style>
#details {
width: 100px;
height: 100px;
background: #ccc;
}
</style>
<script src=”http://code.jquery.com/jquery-1.9.1.js”></script>
</head>
<body>

<form id=”itemform” name=”itemform”>
<input type=”text” id=”itemid” name=”itemid” value=”1234″ onclick=”this.value=”;” />
<input type=”submit” value=”Request” />
</form>
<div id=”iteminfo”></div>

<script>

$(function(){
$(‘#itemform’).submit(function(e){
itemid = $(‘form#itemform #itemid’).val();
console.log(“Submitted ID: “+itemid);
getItemPrice(itemid);
e.preventDefault();
});

function getItemPrice(itemid) {
itemid = itemid;

console.log(“Requested ID: “+itemid);
var APIrequest = “http://marketplace.envato.com/api/edge/item-prices:”+itemid+”.json”;

$.getJSON(APIrequest, function(data2){

var items2 = [];
$.each(data2, function(key, val){
console.log(val.licence);
items2.push(“<div>Licence: “+ val.licence +”<br />Price: “+ val.price+”</div>”);
});

$(“<span/>”, {
html: items2.join(“”)
}).appendTo(“#iteminfo”);

});
}
});
</script>

</body>
</html>[/code]

Thank you very much in advance!
Felix

to post a comment
JavaScript

1 Comments(s)

Copy linkTweet thisAlerts:
@phenomeniaauthorNov 01.2013 — I was able to find a solution. In case somebody else is looking for the same, here's the changed code:

var items2 = [];

$.each(data2, function(key, val){

$.each(val, function(key, val){

items2.push("<div>Licence: "+ val.licence +"<br />Price: "+ val.price+"</div>");

})

});
×

Success!

Help @phenomenia 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.16,
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,
)...