2016-12-06 2 views
-1

То, что я пытаюсь достичь, - это значения, отправленные через сообщение REST, я пытаюсь поместить эти значения в формате JSON, чтобы их можно было поместить в поле формы , послалСтроение JSON со значениями массива элементов массива не определено

var membersToAddArry = []; 
membersToAddArry = request.queryParams.MembersToAdd.toString().split(";");  

    for(var x = 0; x < membersToAddArry.length-1; x++) 
    { 
     dn = membersToAddArry[x].toString(); 
     userJSONAdd["DistinguishedName"] = dn; 
     userJSONAddn[x] = userJSONAdd; 
    } 
    return userJSONAddn; 

данных:

CN=smcgh,OU=Lost-Found,OU=Corp,DC=test,DC=COMPANY,DC=com; 

CN=syouz,OU=Lost-Found,OU=Corp,DC=test,DC=COMPANY,DC=com;

Это возвращает:

{ 
    "result": { 
    "0": { 
     "DistinguishedName": "CN=syouz,OU=Lost-Found,OU=Corp,DC=test,DC=COMPANY,DC=com" 
    }, 
    "1": { 
     "DistinguishedName": "CN=syouz,OU=Lost-Found,OU=Corp,DC=test,DC=COMPANY,DC=com" 
    } 
    } 
} 

Два бита информации повторяют, как я могу остановить это?

+1

Вы уверены, что хотите разделить на точку с запятой, а не в запятых? –

+0

Последняя запись в массиве '' '', и вы переписываете * userJSONAdd' в каждом цикле, поэтому остается только последний элемент, который является пустой строкой ... – deceze

+0

@KamenMinkov Мне нужно полное уважение имя печально –

ответ

1

Восстановить объект userJSONAdd в петле. В противном случае вы добавляете два раза тот же объект, но вы измените значение поля DistinguishedName так что вы получает в два раза и то же значение:

var membersToAddArry = []; 
membersToAddArry = request.queryParams.MembersToAdd.split(";");  

for(var x = 0; x < membersToAddArry.length-1; x++) 
{ 
    userJSONAdd = {}; 
    dn = membersToAddArry[x].toString(); 
    userJSONAdd["DistinguishedName"] = dn; 
    userJSONAddn[x] = userJSONAdd; 
} 
return userJSONAddn; 
+0

ДА, вы тот человек, спасибо вам большое –

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