Я верю, что вы близки к правильному ответу. В программировании, если это работает, то это можно считать правильным ответом, однако, как правило, я рекомендую посмотреть на JSON.
Вместо пар ключ / значение рассмотрите ключ Имя поля и Значение значение этого поля. Если вы используете парсер (я рекомендую Newtonsoft), то вы можете проанализировать JSON для любого объекта, который соответствует описаниям. Вот простой пример:
Пример:
JSON может выглядеть так
{
"Person" :
{
"firstName" : "John",
"lastName" : "Doe",
"DOB" : "04/29/1980"
}
}
Тогда, если вы хотите использовать этот JSON, например, в C #, вы можете создать класс, соответствующий ему:
class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
public Date DOB { get; set; }
}
Теперь вы можете использовать такой инструмент, как Newtonsoft, для его анализа.
string json = ...//however you get the JSON
Person person = JsonConvert.DeserializeObject<Person>(json);
Надеюсь, это поможет.
ИЗМЕНЕНО, чтобы помочь вопросам ниже:
Вот консольное приложение, которое показывает, как преобразовать экземплярный тип в строку JSON, а затем взять строку JSON и преобразовать ее обратно в экземплярный тип.
App:
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
namespace JsonToObjectTest
{
class Program
{
static void Main(string[] args)
{
var children = new List<Person>()
{
new Person("Michael", "Puckett III", new DateTime(2000, 07, 25), null),
new Person("Samuel", "Puckett", new DateTime(2003, 07, 23), null),
new Person("Haylee", "Sanders", new DateTime(2004, 01, 05), null)
};
var dad = new Person("Michael", "Puckett II", new DateTime(1980, 01, 29), children);
var json = JsonConvert.SerializeObject(dad); //dad with array of children is converted to a json string here
Console.WriteLine(json);
var jsonDad = JsonConvert.DeserializeObject<Person>(json); //json string is converted to Person object here
Console.WriteLine($"Name: {jsonDad.FirstName} {jsonDad.LastName}\nDOB: {jsonDad.DOB.ToString()}");
foreach (var child in jsonDad.Children)
{
Console.WriteLine($"Name: {child.FirstName} {child.LastName}\nDOB: {child.DOB.ToString()}");
}
Console.Read();
}
public class Person
{
public Person(string firstName, string lastName, DateTime dob, List<Person> children)
{
FirstName = firstName;
LastName = lastName;
DOB = dob;
Children = children;
}
public string FirstName { get; set; }
public string LastName { get; set; }
public DateTime DOB { get; set; }
public List<Person> Children { get; set; }
}
}
}
Выходы:
{"FirstName":"Michael","LastName":"Puckett II","DOB":"1980-01-29T00:00:00","Children":[{"FirstName":"Michael","LastName":"Puckett III","DOB":"2000-07-25T00:00:00","Children":null},{"FirstName":"Samuel","LastName":"Puckett","DOB":"2003-07-23T00:00:00","Children":null},{"FirstName":"Haylee","LastName":"Sanders","DOB":"2004-01-05T00:00:00","Children":null}]}
Name: Michael Puckett II
DOB: 1/29/1980 12:00:00 AM
Name: Michael Puckett III
DOB: 7/25/2000 12:00:00 AM
Name: Samuel Puckett
DOB: 7/23/2003 12:00:00 AM
Name: Haylee Sanders
DOB: 1/5/2004 12:00:00 AM