I tested with the following code and had the alert displaying 1.5 as expected.
Code:
var items = '"shippingInfo":[{"shippingServiceCost":[{"@currencyId":"USD","__value__":"1.5"}]}]';
items = JSON.parse('{'+items+'}');
alert(items.shippingInfo[0].shippingServiceCost[0].__value__);
I had to add the extra }] to the end to close the data - I assume that you have further values following in the actual string and that those two characters are at the end.
I am not really sure why you can't get your code to work - there isn't exactly all that much code required.
Bookmarks