EDITED: Как мы берем следующий впередПерегруппировка рубиновый хэш с условием
fields = [{"Name"=>"CONTACT.MAILADDRESS.LATITUDE", "dataName"=>"Pt_FieldDouble", "externalDataName"=>"number", "isRequired"=>"false", "isReadOnly"=>"false", "maxLength"=>"10", "DisplayLabel"=>"Latitude", "Description"=>"Latitude", "id"=>"999505900000211"},
{"Name"=>"CONTACT.MAILADDRESS.LONGITUDE", "dataName"=>"Pt_FieldDouble", "externalDataName"=>"number", "isRequired"=>"false", "isReadOnly"=>"false", "maxLength"=>"11", "DisplayLabel"=>"Longitude", "Description"=>"Longitude", "id"=>"999505900000212"},
{"Name"=>"CONTACT.STATE", "dataName"=>"Pt_FieldString", "externalDataName"=>"string", "isRequired"=>"false", "isReadOnly"=>"false", "maxLength"=>"0", "DisplayLabel"=>"Status", "Description"=>"Active/Inactive", "id"=>"999505900000166"},
{"Name"=>"XXSTATUS", "dataName"=>"Pt_FieldString", "externalDataName"=>"string", "isRequired"=>"false", "isReadOnly"=>"false", "maxLength"=>"0", "DisplayLabel"=>"XStatus", "Description"=>"Active/Inactive", "id"=>"99950591200166"}]
output =
[{"CONTACT" =>
{ "MAILADDRESS" =>
{ "Name" => "LATITUDE", "dataName"=>"Pt_FieldDouble", "externalDataName"=>"number", "isRequired"=>"false", "isReadOnly"=>"false", "maxLength"=>"10", "DisplayLabel"=>"Latitude", "Description"=>"Latitude", "id"=>"999505900000211"},
{ "Name" => "LATITUDE", "dataName"=>"Pt_FieldDouble", "externalDataName"=>"number", "isRequired"=>"false", "isReadOnly"=>"false", "maxLength"=>"11", "DisplayLabel"=>"Longitude", "Description"=>"Longitude", "id"=>"999505900000212"}},
{ "Name" =>"STATE", "dataName"=>"Pt_FieldString", "externalDataName"=>"string", "isRequired"=>"false", "isReadOnly"=>"false", "maxLength"=>"0", "DisplayLabel"=>"Status", "Description"=>"Active/Inactive", "id"=>"999505900000166"}},
{ "Name" =>"XXSTATUS", "dataName"=>"Pt_FieldString", "externalDataName"=>"string", "isRequired"=>"false", "isReadOnly"=>"false", "maxLength"=>"0", "DisplayLabel"=>"XStatus", "Description"=>"Active/Inactive", "id"=>"99950591200166"}]
Я попытался
fields.map {| я | {Я [ "Name"] => i.except ("Name")}}
[{"CONTACT.MAILADDRESS.LATITUDE"=>{"dataName"=>"Pt_FieldDouble", "externalDataName"=>"number", "isRequired"=>"false", "isReadOnly"=>"false", "maxLength"=>"10", "DisplayLabel"=>"Latitude", "Description"=>"Latitude", "id"=>"999505900000211"}},
{"CONTACT.MAILADDRESS.LONGITUDE"=>{"dataName"=>"Pt_FieldDouble", "externalDataName"=>"number", "isRequired"=>"false", "isReadOnly"=>"false", "maxLength"=>"11", "DisplayLabel"=>"Longitude", "Description"=>"Longitude", "id"=>"999505900000212"}},
{"CONTACT.STATUS"=>{"dataName"=>"Pt_FieldString", "externalDataName"=>"string", "isRequired"=>"false", "isReadOnly"=>"false", "maxLength"=>"0", "DisplayLabel"=>"Status", "Description"=>"Active/Inactive", "id"=>"999505900000166"}}]
Поразило, как разделить ключи и поставить значения вместе
Не нужно сразу принимать ответ. Если вы немного подождетете, могут быть лучшие ответы. –