В моем случае я начал работать с открытием Application Loader внутри XCode.
Шаги: XCode -> Открыть инструмент разработчика -> Application Loader
Когда я открыл его с помощью Launchpad не удалось определить правильную учетную запись для приложения. Поэтому он попросил меня создать учетную запись.
С помощью XCode Application Loader может отображать список учетных записей, на которые я имею право. Вы должны выбрать правильную учетную запись из раскрывающегося списка.
Почему вы используете StreamReader для чтения данных JSON?
вы можете использовать JObject для анализа вашего json и получения данных из него.
var json = @"{""data"":[""4482359"",""12526"",""5"",""5"","""",""Yes, that is right"",""1""]}";
var obj = JObject.Parse(json);
List<string> lst = (obj["data"]).ToObject<List<string>>();
var result = JsonConvert.SerializeObject(lst);
Предполагая, что это содержимое потока:
{"data":["4482359","12526","5","5","","Yes, that is right","1"]}
{"data":["2223446","65432","3","3","","Nope, that's not right","0"]}
(...)
вы можете десериализовать эти строки, используя List<class>
. Примерно так:
using System.IO;
using Newtonsoft.Json;
public class RootObject
{
public List<string> data { get; set; }
}
Потоковую передачу JSON можно десериализовать двумя простыми способами:
List<RootObject> dataObjects = new List<RootObject>();
using (StreamReader sr = new StreamReader(stream))
{
var JSONObject = sr.ReadToEnd();
var reader = new JsonTextReader(new StringReader(JSONObject)) { SupportMultipleContent = true };
var serializer = new JsonSerializer();
while (reader.Read()) {
dataObjects.Add(serializer.Deserialize<RootObject>(reader));
}
reader.Close();
}
Версия VB.Net:
Imports System.IO
Imports Newtonsoft.Json
Public Class RootObject
Public Property MyData As List(Of String)
End Class
Dim dataObjects As New List(Of RootObject)()
Using sr As New StreamReader(stream)
Dim JSONObject As String = sr.ReadToEnd()
Dim reader = New JsonTextReader(New StringReader(JSONObject)) With {
.SupportMultipleContent = True
}
Dim serializer = New JsonSerializer()
While reader.Read()
dataObjects.Add(serializer.Deserialize(Of RootObject)(reader))
End While
reader.Close()
End Using
[
перед первой строкой и ]
после последней строки, разделяя каждую строку знаком (запятая). Теперь у вас есть функциональный массив, который можно десериализовать с помощью JsonConvert.DeserializeObject<Object>(JSON)
Конечный продукт будет выглядеть следующим образом:
[ {"data":["value1","value2","value3", (...)]},
{"data":["value1","value2","value3", (...)]} ]
[ 1125]
List<RootObject> dataObjects = new List<RootObject>();
using (StreamReader sr = new StreamReader(stream))
{
var JSONObject = sr.ReadToEnd();
dataObjects = JsonConvert.DeserializeObject<List<RootObject>>(JSONObject);
}
Версия VB.Net:
Dim dataObjects As New List(Of RootObject)()
Using sr As New StreamReader(stream)
Dim JSONObject As String = sr.ReadToEnd()
dataObjects = JsonConvert.DeserializeObject(Of List(Of RootObject))(JSONObject)
End Using