GrpSMK Ответов: 2

Как изменить формат данных json


У меня есть данные json в определенном формате,мне нужно изменить формат данных для использования в моем коде.Как изменить его в коде c# или в чем-то другом?

Что я уже пробовал:

формат JSON
[

    "concepts": {
         "http://dbpedia.org/resource/Chuckles_(G.I._Joe)": {
           "SurfaceForms": [
             {
               "Score": 0.9460024,
               "String": "CHUCKLES",
               "Offset": 3
             }
           ],
           "Types": [ "" ],
           "Support": 52
         }
       },
"concepts": {
         "http://dbpedia.org/resource/Memory,_Sorrow,_and_Thorn": {
           "SurfaceForms": [
             {
               "Score": 1.0,
               "String": "Sithi",
               "Offset": 2
             }
           ],
           "Types": [ "" ],
           "Support": 43
         }
       }

]


В этих данных JSON, как получить оценку внутри поверхностных форм.

Ram Nunna

вам нужно создать правильные классы в C#.
Пожалуйста, обратитесь к ссылке ниже.
https://stackoverflow.com/questions/11260631/convert-json-into-class-object-in-c-sharp

2 Ответов

Рейтинг:
1

Graeme_Grant

Эта статья даст вам инструменты и покажет вам, как сделать то, что вы просите: Работа с JSON в C# и VB[^]

Кроме того, в ваших данных JSON есть ошибка. Так и должно быть:

{

    "concepts": {
         "http://dbpedia.org/resource/Chuckles_(G.I._Joe)": {
           "SurfaceForms": [
             {
               "Score": 0.9460024,
               "String": "CHUCKLES",
               "Offset": 3
             }
           ],
           "Types": [ "" ],
           "Support": 52
         }
       },
"concepts": {
         "http://dbpedia.org/resource/Memory,_Sorrow,_and_Thorn": {
           "SurfaceForms": [
             {
               "Score": 1.0,
               "String": "Sithi",
               "Offset": 2
             }
           ],
           "Types": [ "" ],
           "Support": 43
         }
       }

}


А вот классы C#, сгенерированные с помощью JSON Utils: генерация C#, VB.Net, таблица SQL, Java и PHP из JSON[^]:
public class SurfaceForm
{

	[JsonProperty("Score")]
	public double Score { get; set; }

	[JsonProperty("String")]
	public string String { get; set; }

	[JsonProperty("Offset")]
	public int Offset { get; set; }
}

public class HttpDbpediaOrgResourceMemorySorrowAndThorn
{

	[JsonProperty("SurfaceForms")]
	public IList<SurfaceForm> SurfaceForms { get; set; }

	[JsonProperty("Types")]
	public IList<string> Types { get; set; }

	[JsonProperty("Support")]
	public int Support { get; set; }
}

public class Concepts
{

	[JsonProperty("http://dbpedia.org/resource/Memory,_Sorrow,_and_Thorn")]
	public HttpDbpediaOrgResourceMemorySorrowAndThorn HttpDbpediaOrgResourceMemorySorrowAndThorn { get; set; }
}

public class Result
{

	[JsonProperty("concepts")]
	public Concepts Concepts { get; set; }
}

Для заполнения классов, приведенных выше ссылка на статью[^ я покажу тебе, как это делается.


Karthik_Mahalingam

5

Рейтинг:
1

Kornfeld Eliyahu Peter

У вас есть два варианта:
1. Создайте класс, который соответствует JSON, и используйте его (более простой способ IMHO)
2. Использование Создание экземпляра[^] от Newtonsoft - он может содержать любой JSON без подготовки...