문자열을 grails에서 Map으로 변환하고 싶습니다. 이미 변환을 매핑하는 문자열 기능이 있습니다. 여기에 코드,
static def StringToMap(String reportValues){
Map result=[:]
result=reportValues.replace('[','').replace(']','').replace(' ','').split(',').inject([:]){map,token ->
List tokenizeStr=token.split(':');
tokenizeStr.size()>1?tokenizeStr?.with {map[it[0]?.toString()?.trim()]=it[1]?.toString()?.trim()}:tokenizeStr?.with {map[it[0]?.toString()?.trim()]=''}
map
}
return result
}
그러나 값에 쉼표가있는 String이 있으므로 위의 기능이 작동하지 않습니다. Heres 내 문자열
[program_type:, subsidiary_code:, groupName:, termination_date:, effective_date:, subsidiary_name:ABC, INC]
내 함수는 ABC 만 반환합니다. ABC, INC가 아닙니다. 나는 그것에 대해 검색했지만 구체적인 도움을 찾을 수 없었습니다.
일반적으로 Stringified Map을 Map 객체로 변환해야하는 경우 Eval.me를 사용하려고합니다 . 당신의 예제 String은 그렇게하기에 옳지 않다. 만약 당신이 다음을 가지고 있다면 그것은 "그냥 작동"할 것이다.
// Note I have added '' around the values.
String a = "[program_type:'', subsidiary_code:'', groupName:'', termination_date:'', effective_date:'', subsidiary_name:'ABC']"
Map b = Eval.me(a)
// returns b = [program_type:, subsidiary_code:, groupName:, termination_date:, effective_date:, subsidiary_name:ABC]
문자열을 제어 할 수 있다면 이런 종류의 패턴을 따라 만들 수 있다면 가장 쉬운 해결책이 될 것입니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다