To see if the issue is with your version of the JS engine (whichever you're using), you could include something like Crockford's JSON parse to your rest asset:
It might solve your issue if you have an older version of the JS engines installed and can't upgrade them.
Also, your eval seems to be working properly. I believe in this context eval will return an object, which doesn't have a length property, so status.length will return undefined.
And print(status) won't print the actual content of the js object, not like it would a string, but just return the "type of" what you're trying to print, so in this case, "[object Object]".
Oops; should have updated this with the outcome: we did exactly that: added the json_parse.js script to the asset.
It may also be of interest to know that the page had a 'general' design attached - this was (ever so slightly) mangling the JSON which wasn't parsed correctly.
When the design was altered to serve the content as JSON, the parsing succeeded.....but we did need the json_parse to be added manually.