Hi Farrukh
filterWithAllRecursive works great.
Thanks for the help everyone.
Liz
On 15 Jul 2011, at 21:37, Farrukh Ijaz wrote:
> Use ERXKeyFilter.filterWithAll() or ERXKeyFilter.filterWithAllRecrusive()
>
> Farrukh
>
> On 2011-07-15, at 11:12 PM, Elizabeth Lynch wrote:
>
>> Hi
>>
>>> That should work. What key filter are you using? Are you not allowing keys
>>> in from the nested dictionary?
>>
>> Here is my implementation of data for testing (from Category.java):
>>
>> public NSDictionary data() {
>> return new NSDictionary("key", "stringValue");
>> }
>>
>> and my showFilter (from CategoryController.java):
>>
>> public static ERXKeyFilter showFilter() {
>> ERXKeyFilter filter = ERXKeyFilter.filterWithAttributes();
>> filter.include(new ERXKey<NSDictionary<String,String>>("data"));
>> return filter;
>> }
>>
>> results in:
>>
>> "data":{"nil":true}
>> I assume this is the result of something incredibly obvious that I have
>> overlooked :-).
>>
>> Liz
>>
>>
>>>
>>> On Jul 15, 2011, at 1:43 PM, Elizabeth Lynch wrote:
>>>
>>>> Hi
>>>>
>>>>> I think you can define an additional getter method over data as
>>>>> dataDictionary() which should return the data xml as NSDictionary. This
>>>>> will solve the problem for both XML and JSON.
>>>>
>>>> Unfortunately that isn't working for me. Here's some more information
>>>> I've discovered about the ERREST problem; it looks like it can't cope with
>>>> Collections (List/Map, or ArrayList/HashMap). Perhaps it wants nasty
>>>> beans? Below is an example showing it not coping with a dictionary.
>>>>
>>>> 'data' is a derived attribute, returning a dictionary, declared as
>>>> ERXKey<Object> in the ERXKeyFilter (or NSDictionary), it returns:
>>>>
>>>> "data":{"nil":true}
>>>>
>>>> An NSArray returns:
>>>>
>>>> "data":["stringValue"]}
>>>>
>>>> which is much better. But an array of dictionary gives:
>>>>
>>>> "data":[{"nil":true}]}
>>>>
>>>> So it seems that the JSON converter is having issues with
>>>> NSDictionary/Hashmap (I've tried both).
>>>>
>>>> Does anyone have any ideas?
>>>>
>>>> Liz
>>>>
>>>>>
>>>>> Farrukh
>>>>>
>>>>> On 2011-07-15, at 7:24 PM, Elizabeth Lynch wrote:
>>>>>
>>>>>> Hi Farrukh
>>>>>>
>>>>>> Thanks: that's a good suggestion, but I need to get it into JSON before
>>>>>> it leaves the server, so that technique won't work for me.
>>>>>>
>>>>>> Liz
>>>>>>
>>>>>> On 15 Jul 2011, at 15:55, Farrukh Ijaz wrote:
>>>>>>
>>>>>>> Hi Liz,
>>>>>>>
>>>>>>> That's a common issue. Suppose you receive the JSON mentioned below,
>>>>>>> once you get the value of data attribute which is a JSON object in
>>>>>>> string format, evaluate it using eval() method of javascript and it
>>>>>>> will be converted to JSON.
>>>>>>>
>>>>>>> Farrukh
>>>>>>>
>>>>>>> Sent from my iPad 2
>>>>>>>
>>>>>>> On 2011-07-15, at 3:58 PM, Elizabeth Lynch <[email protected]> wrote:
>>>>>>>
>>>>>>>> Hi Pascal
>>>>>>>>
>>>>>>>> Sorry, I didn't explain the problem clearly. I am doing that already.
>>>>>>>> The problem is that it comes as a string in my JSON output, not as an
>>>>>>>> object.
>>>>>>>>
>>>>>>>> Liz
>>>>>>>>
>>>>>>>> Sent from my iPhone
>>>>>>>>
>>>>>>>> On 15 Jul 2011, at 12:39, Pascal Robert <[email protected]> wrote:
>>>>>>>>
>>>>>>>>> I think the best way would be to transform the XML to a Java object
>>>>>>>>> and transform that object back to JSON.
>>>>>>>>>
>>>>>>>>>> I am building an ERRest application (read only), and am having a
>>>>>>>>>> problem with one field. This field holds an xml string, which I
>>>>>>>>>> need to embed into the output from show and index actions; it will
>>>>>>>>>> be consumed as json (mainly; possibly only).
>>>>>>>>>>
>>>>>>>>>> For example, I would like to receive:
>>>>>>>>>>
>>>>>>>>>> {"name" : "A Record", "data" : { "fieldA" : "valueA", "fieldB" :
>>>>>>>>>> "valueB" } }
>>>>>>>>>>
>>>>>>>>>> where the data attribute comes from:
>>>>>>>>>>
>>>>>>>>>> <SomeElement FieldA="valueA"><FieldB>valueB</FieldB></SomeElement>
>>>>>>>>>>
>>>>>>>>>> Or something similar to that. I can use net.sf.json to do the
>>>>>>>>>> conversion directly, which produces satisfactory strings, but that
>>>>>>>>>> doesn't cope with the XML output format case, and I can't figure out
>>>>>>>>>> how to pass it into my JSON output. If I do that with a String
>>>>>>>>>> field, then obviously it is output as a string value, not as a JSON
>>>>>>>>>> object, which isn't what I want.
>>>>>>>>>>
>>>>>>>>>> In short, the XML is a moderately complex object, which I need to
>>>>>>>>>> output as an object in the JSON format.
>>>>>>>>>>
>>>>>>>>>> All ideas appreciated.
>>>>>>>>>>
>>>>>>>>>> Liz _______________________________________________
>>>>>>>>>> Do not post admin requests to the list. They will be ignored.
>>>>>>>>>> Webobjects-dev mailing list ([email protected])
>>>>>>>>>> Help/Unsubscribe/Update your Subscription:
>>>>>>>>>> http://lists.apple.com/mailman/options/webobjects-dev/probert%40macti.ca
>>>>>>>>>>
>>>>>>>>>> This email sent to [email protected]
>>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> Do not post admin requests to the list. They will be ignored.
>>>>>>>> Webobjects-dev mailing list ([email protected])
>>>>>>>> Help/Unsubscribe/Update your Subscription:
>>>>>>>> http://lists.apple.com/mailman/options/webobjects-dev/farrukh.ijaz%40fuegodigitalmedia.com
>>>>>>>>
>>>>>>>> This email sent to [email protected]
>>>>>>
>>>>>
>>>>
>>>> _______________________________________________
>>>> Do not post admin requests to the list. They will be ignored.
>>>> Webobjects-dev mailing list ([email protected])
>>>> Help/Unsubscribe/Update your Subscription:
>>>> http://lists.apple.com/mailman/options/webobjects-dev/mschrag%40pobox.com
>>>>
>>>> This email sent to [email protected]
>>>
>>
>
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list ([email protected])
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com
This email sent to [email protected]