From your example page, under Parameters:

value
The value being encoded. Can be any type except a resource.

That means it can be an Array, an Object, a String, an Integer, a  
Boolean, a Floating Point Number or NULL, according to this list of  
Types:

http://us3.php.net/manual/en/language.types.resource.php



Walter



On Jun 8, 2009, at 11:00 AM, Matt Foster wrote:

>
> You guys are crazy...you send json_encode an object, not a string!!
>
> http://us3.php.net/manual/en/function.json-encode.php
>
> --
>
> http://positionabsolute.net
>
>
> On Jun 5, 6:16 am, "Alex McAuley" <[email protected]>
> wrote:
>> very strange .. works for me with anything all the time
>>
>> ----- Original Message -----
>> From: "Matt" <[email protected]>
>> To: "Prototype & script.aculo.us" <[email protected] 
>> >
>> Sent: Friday, June 05, 2009 10:05 AM
>> Subject: [Proto-Scripty] Re: HTML breaks JSON
>>
>> Hi Alex,
>>
>> Still didn't work for me :( Just produced broken HTML output again.
>>
>> On Jun 4, 5:24 pm, "Alex McAuley" <[email protected]>
>> wrote:
>>> You need to do it a bit differently with php json_encode/ 
>>> decode ... i had
>>> this problem when i first started using it....
>>
>>> where you send post data (JSON) as p
>>
>>> $post=str_replace('\"', '"', $_POST['p']);
>>> $json=$post;
>>> $d=json_decode($json,true);
>>
>>> foreach($d as $key=>$val) { ...... do what you will with it after  
>>> this
>>> unless you know the key names !!
>>
>>> This should do the trick for you
>>
>>> HTH
>>
>>> ALex
>>
>>> ----- Original Message -----
>>> From: "Matt" <[email protected]>
>>> To: "Prototype & script.aculo.us"
>>> <[email protected]>
>>> Sent: Thursday, June 04, 2009 4:30 PM
>>> Subject: [Proto-Scripty] Re: HTML breaks JSON
>>
>>> Hi again,
>>
>>> I've been running addslashes() on the input before running  
>>> json_encode
>>> () and it still creates problems when I pass it through AJAX -  
>>> breaks
>>> HTML tags etc. If I turn addslashes() off, any occurence of "" in  
>>> the
>>> body text (eg quotes from speakers etc) breaks the code again. Does
>>> anyone have a foolproof method?
>>
>>> Cheers
>>> Matt
>>
>>> On Apr 24, 9:54 pm, Matt Foster <[email protected]> wrote:
>>>> What are you sending to PHP's json_encode? It is expecting a
>>>> structure to serialize into a JSON syntax string.
>>
>>>> $struct = array("message" => "<h1>Hello World</h1>Who says we can't
>>>> have any kind of \"quotes\" we want?");
>>
>>>> echo json_encode($struct);
>>
>>>> If you try to run json_encode on your already JSONified string,  
>>>> yeah
>>>> its going to cause problems...
>>
>>>> --
>>
>>>> http://positionabsolute.net
>>
>>>> On Apr 24, 12:26 pm, "T.J. Crowder" <[email protected]>  
>>>> wrote:
>>
>>>>> @Ananth:
>>
>>>>> Converting to Base64 would be massive overkill, surely.
>>
>>>>> @OP:
>>
>>>>> There's no reason you can't include strings containing HTML in  
>>>>> JSON
>>>>> data. You just have to make sure your strings are valid string
>>>>> literals, like this:
>>
>>>>> {
>>>>> message: "<p>This is HTML.</p>"
>>
>>>>> }
>>
>>>>> There's nothing special other than making sure the HTML is  
>>>>> correctly
>>>>> escaped -- e.g., if you're putting the JSON string in double  
>>>>> quotes,
>>>>> naturally any double quotes in the HTML will need a backslash in  
>>>>> front
>>>>> of them -- as, for that matter, will any backslashes!
>>
>>>>> HTH,
>>>>> --
>>>>> T.J. Crowder
>>>>> tj / crowder software / com
>>
>>>>> On Apr 24, 5:05 pm, Ananth Raghuraman <[email protected]>  
>>>>> wrote:
>>
>>>>>> JSON should not contain HTML for tactical/ease of programming
>>>>>> purposes
>>>>>> unless the HTML is there as part of a larger design, but there  
>>>>>> may
>>>>>> or
>>>>>> may
>>>>>> not be implementation restrictions.
>>>>>> If you are facing problems, can you try encoding the HTML string
>>>>>> (Base64)
>>>>>> and decoding back (using Javascript Base64 code ) before  
>>>>>> display on
>>>>>> the
>>>>>> browser?
>>
>>>>>> On Fri, Apr 24, 2009 at 11:30 AM, Matt <[email protected]>
>>>>>> wrote:
>>
>>>>>>> Hi there,
>>
>>>>>>> I'm using PHP to output some JSON through AJAX to my page. It
>>>>>>> breaks
>>>>>>> whenever I use a backslash or quote mark.
>>
>>>>>>> I've tried using php's json_encode function which doesn't seem  
>>>>>>> to
>>>>>>> help, just breaks it further. I've also tried php's addslashes()
>>>>>>> to
>>>>>>> the output, again, same problem.
>>
>>>>>>> Am I approaching this correctly, fundamentally? Is JSON supposed
>>>>>>> to
>>>>>>> contain HTML?
>>
>>>>>>> Thanks,
>>
>>>>>>> Matt
> >


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Prototype & script.aculo.us" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/prototype-scriptaculous?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to