2015-03-26 3 views
0

я получаю данные в формате JSON, как показано ниже,содержит (метод) не работает

def data = JSON.parse(params.company) //it's [name:foo, users:[1,2,3]] 

И я хочу, чтобы проверить, если в нем содержится. Я сделал, как это,

if(data.users.contains(2)){ 
    println 'true' 
} 
else { 
println 'false' 
} 

Это всегда печатать «ложные»

Но когда я пытаюсь новыми данными, как

def test = [1,2,3] 
if(test.contains(2)){ 
    println 'true' 
} 
else { 
println 'false' 
} 

Это «истина».

+0

не могли бы вы показать нам, что такое 'data.users' на самом деле? например 'println data.users.inspect()' – cfrick

+0

@cfrick, теперь это ['1', '2', '3']. У них есть одна цитата. –

+0

@cfrick Мне нужно разобрать его на String в методе contains. как data.users.contains (2.toString()). Теперь это сработало. Благодарю. –

ответ

0

Хотя вы сказали в комментарии, что решили его, я думаю, вы сделали это неправильно.

Вы должны попробовать

def test = [1,2,3] 
if(test.contains('2')){ 
    println 'true' 
} 
else { 
println 'false' 
} 

Вы должны понимать, что 2 == '2' является ложным. Типы имеют значение.

Смежные вопросы