Loading ...
Sorry, an error occurred while loading the content.

Re: json.parse returns false or error with valid strings on server-side JS

Expand Messages
  • dnc_octopus
    Mark, Your assumption is correct. I ll try encodeURIComponent before using parse and see what happens. Thanks for your help! Duarte ... but I ll ... to get ...
    Message 1 of 5 , Apr 14, 2006
    • 0 Attachment
      Mark,

      Your assumption is correct.

      I'll try encodeURIComponent before using parse and see what happens.

      Thanks for your help!
      Duarte

      --- In json@yahoogroups.com, "Mark Ingalls" <mark_ingalls@...> wrote:
      >
      > I don't see where you are calling fazJSON to stringify the object,
      but I'll
      > assume that objJSN is the stringified version of an object.
      >
      >
      >
      > I had to wrap the stringified object in a call to encodeURIComponent
      to get
      > the object roundtrip successfully. YMMV
      >
      >
      >
      > I have a working example that uses two .asp pages and some supporting js
      > files. If you'd like them, please let me know and I'll send them.
      >
      >
      >
      > Thanks,
      >
      > Mark
      >
      >
      >
      > _____
      >
      > Original message:
      >
      > Ok.
      > I build an object like this on the client side just for testing:
      > function fazJSON()
      > {
      > var mObj = new Object;
      > mObj.Time = new Date().getTime();
      > mObj.Data = new Date().toUTCString();
      > return JSON.stringify(mObj);
      > }
      >
      > Then I pass this object to AJAX.Request (from prototype lib):
      > new Ajax.Request ('teste.asp',
      > {
      > method: 'get',
      > parameters: 'pedido=' + objJSN,
      > onSuccess: procResp,
      > onFailure: procErro
      > }
      > );
      >
      >
      > On the server I get the request using the QueryString, and pass it to
      > JSON.parse:
      >
      > strReq = Request.QueryString("pedido");
      > respObj = JSON.parse(strReq);
      > if(respObj == false) {
      > Response.Write('JSON returned False');
      > Response.End;
      > }
      >
      > The following are examples of json strings (produced by JSON) that
      > return false from JSON.parse on the server:
      > {"Time":1144349903406,"Data":"Thu, 06 Apr 2006 18:58:23 GMT"}
      > {"Data":"Thu, 06 Apr 2006 19:05:50 GMT"}
      >
      {"url":{"hash":"","host":"dnc1","hostname":"dnc1","href":"http://dnc1/evsig2
      >
      /teste.html","pathname":"/evsig2/teste.html","port":"","protocol":"http:","s
      > earch":""}}
      >
      > But if I eval the strings it's ok.
      >
      > Also, a last detail. On the server page I use:
      > <%@ language="javascript"%>
      > <!--#include virtual="/evsig2/server/json.asp"-->
      > <%
      > ..rest of the program goes here...
      > %>
      >
      > If there's any other info that's relevant just let me know.
      > Duarte
      >
      >
      >
      >
      > _____
      >
      >
      >
      > [Non-text portions of this message have been removed]
      >
    Your message has been successfully submitted and would be delivered to recipients shortly.