Я использую SQL 2016, но я пишу JSON с использованием Newtonsoft.Json, потому что wep api использовал SQL 2012. Мне нужно получить два набора записей, используя javascript и Axio в приложении Vue. Мой веб-API в настоящее время

writer.WriteStartArray() While reader.Read writer.WriteStartObject() writer.WritePropertyName("dbid") writer.WriteValue(reader("dbid").ToString) writer.WritePropertyName("memberID") writer.WriteValue(reader("memberID").ToString) writer.WriteEndObject() End While reader.NextResult() writer.WriteEndArray() writer.WriteStartArray() While reader.Read writer.WriteStartObject() writer.WritePropertyName("ProgramCode") writer.WriteValue(reader("ProgramCode").ToString) writer.WritePropertyName("ProgramName") writer.WriteValue(reader("ProgramName").ToString) writer.WriteEndObject() End While writer.Close() 

мой вывод

 [{"dbid":"100","memberID":"1640"},{"dbid":"100","memberID":"1641"}][{"ProgramCode":"CC","Color":"Blue"},{"ProgramCode":"CB","Color":"Green"}]" 

когда я передаю только один набор записей за раз, я бы

  this.$axios .get( "https://restapi2.azurewebsites.net/api/GetMembers/"   dbid ) .then(res ={amp}gt; { let result = JSON.parse(res.data); 

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

  let results = res.data[0]; let result = = JSON.parse(results[0]); 

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

Позвольте мне попытаться объяснить это немного по-другому.

У меня есть приложение Vue.js, которое мне нужно, чтобы заполнить 2 разных массива данными с сервера SQL. У меня нет проблем с заполнением массивов отдельными вызовами ajax / axios, но я хочу использовать один серверный вызов и разделить данные на стороне клиента на разные массивы. Один массив содержит данные о сотрудниках, а другой — административные данные. Абсолютно необновленный. Если бы я работал с приложением .NET, я бы просто использовал набор записей в качестве устройства чтения данных и выполнял readNext.

Я не полностью понимаю результат вызова API, который вы получаете, но вот способ заполнения двух разных массивов значений из одного набора данных:

 const data = [{name: "A", amount: 3}, {name: "B", amount: 12}, , {name: "C", amount: 1}]; let names = []; let amounts = []; data.forEach(function(d) { names.push(d.name); amounts.push(d.amount); }); 

Если у вас есть два набора данных одинаковой длины (и порядка), и вы хотите настроить два разных массива, вот способ:

 const dataOne = [{name: "A"}, {name: "B"}, {name: "C"}]; const dataTwo = [{amount: 3}, {amount: 12}, {amount: 1}]; let names = []; let amounts = []; dataOne.forEach(function(d, idx) { names[idx] = d.name; amounts[idx] = dataTwo[idx].amount; }); 

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

  let results = res.data.split("]"); for (let i = 0; i {amp}lt; results.length; i  ) { if (results[i].endsWith("]") == false) { results[i] = results[i]   "]"; alert(results[i]); //for testing } } 

Сначала я делю на «]», который является разделителем, который заканчивает каждый массив, а затем обрабатываю каждый отдельно, добавляя закрывающую скобку массива.