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]