2017-05-12 4 views
-1

serializeArray() 에 의해 반환 된 양식 데이터를보다 바람직한 구조로 재구성하려면 어떻게해야합니까?양식 json 데이터를 재구성하는 방법은 무엇입니까?

그래서 지금은이 :

[ 
    { 
     "name":"email8", 
     "value":"[email protected]" 
    }, 
    { 
     "name":"password8", 
     "value":"pass1" 
    }, 
    { 
     "name":"email9", 
     "value":"[email protected]" 
    }, 
    { 
     "name":"password9", 
     "value":"pass2" 
    }, 
    { 
     "name":"email10", 
     "value":"[email protected]" 
    }, 
    { 
     "name":"password10", 
     "value":"pass3" 
    } 
] 

나는이 원하는 :이 PHP 나 자바 스크립트에서 수행되는 경우

{ 
    "[email protected]":"pass1", 
    "[email protected]":"pass2", 
    "[email protected]":"pass3" 
} 

내가 마음을 해달라고. 다음 형식의 이미지인가가 도움이된다면 : enter image description here

업데이트 : 다음 는 그 변경하는 것이 더 나은 될 일을 내가 뭘입니다 :

$user = WebmailAutologinUser::find(1); 
$emails = array(
"[email protected]" => "pass1", 
"[email protected]" => "pass2", 
"[email protected]" => "pass3"); 

foreach ($emails as $email => $password) { 
    $user->autoLoginAccounts()->create([ 
     'email' => $email, 
     'password' => $password 
    ]); 
} 

자사의 배열을 확대 그림을 웅변 사용 db로.

그래서 emailpassword는 DB에있는 열입니다.

+0

쓰기 사용자 정의 직렬화? –

답변

0

가능한 접근 방식은 Array#reduce입니다.

var arr = [{"name":"email8","value":"[email protected]"},{"name":"password8","value":"pass1"},{"name":"email9","value":"[email protected]"},{"name":"password9","value":"pass2"},{"name":"email10","value":"[email protected]"},{"name":"password10","value":"pass3"}], 
 
    res = arr.reduce((s,a,i) => (i % 2 ? s[arr[i-1].value] = a.value : null, s), {}); 
 

 
    console.log(res);

+0

답변이 적절한 지 물어 보면 게시하기 전에 기다려야할까요? –

+0

@ StoneArcher 그가 OP가 정확히 원하는지 OP에게 묻는 것은 정말 나빴습니까? 대답을 삭제/개선하기 위해 응답을 기다리는 중입니다. 어쨌든, 당신이이 순간에하는 것처럼 이런 종류의 행동은 도움이되지 않습니다. 오히려 파괴적입니다. –

+0

닫기하지만 ''' { "email8"반환 "[email protected]" "password8": "패스", "email9": "[email protected]를" "password9", "email10"을 "통과": "[email protected]" "password10는" } '' –

-2
function test() 
{ 
//alert("Hi"); 
var text = '[{"name":"email8","value":"[email protected]"},{"name":"password8","value":"pass"},{"name":"email9","value":"[email protected]"},{"name":"password9","value":"pass"},{"name":"email10","value":"[email protected]"},{"name":"password10","value":"pass"}]' 

json = JSON.parse(text); 

var result = {}; 

for(var i = 0; i < json.length; i++) { 
    var obj = json[i]; 

    if(obj.name.startsWith('email')){ 
     key = obj.value; 
     i++; 
     var obj = json[i]; 
     if(obj.name.startsWith('password')){ 
     result[key] = obj.value; 
     } 
    } 


} 

console.log(result); 

}