Satyanand Bhardwaj Ответов: 3

Как я могу хранить объект json в массиве json с именем массива ?


//This is my code and i want to pass api with array name please give me the answer

protected void Page_Load(object sender, EventArgs e)
{
    //IsTrue = 0;
    if (string.IsNullOrEmpty(Request.QueryString["Username"]) == false
       && string.IsNullOrEmpty(Request.QueryString["Password"]) == false)
    //{
    //    IsTrue = 1;
    //}
    //if (IsTrue > 0)
    {
        DataTable dt = new DataTable();
        
        UserName = Request.QueryString["UserName"];
        Password = Request.QueryString["Password"];
        
        con.Open();
        dt.Load(new SqlCommand("select Top 10 Memberid,MemberName from PartyMaster Order by msrno", con).ExecuteReader());
        con.Close();

        System.Web.Script.Serialization.JavaScriptSerializer serializer
            = new System.Web.Script.Serialization.JavaScriptSerializer();
        
        List<Dictionary<string, object>> rows = new List<Dictionary<string, object>>();
        Dictionary<string, object> row = default(Dictionary<string, object>);

        foreach (DataRow dr in dt.Rows)
        {
            row = new Dictionary<string, object>();
            foreach (DataColumn col in dt.Columns)
            {
                row.Add(col.ColumnName, dr[col]);
            }
            rows.Add(row);
        }
    }

    //string Mystr = serializer.Serialize(rows);

    string Mystr = serializer.Serialize(rows);

    Response.ContentType = "application/json"; //JSON Text output
    Response.Write(Mystr);
}


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

How can i store Object Json in Array Json with Array name ?

пожалуйста, дайте мне ответ

Graeme_Grant

Что происходит?

Satyanand Bhardwaj

строка Mystr = сериализатор.Сериализация (строки);
я хочу использовать хранилище объектов Mystr json в массиве json с именем и передать это имя массива api

Graeme_Grant

Я спрашиваю не о том, чего ты хочешь, а о том, что происходит. Вы сериализуетесь-я не могу запустить ваш код здесь, вам нужно объяснить. Вы получаете ошибку? Является ли вывод данных JSON не таким, как ожидалось? Что происходит?

Satyanand Bhardwaj

На самом деле, сэр, я хочу показать мой сериализовать данные просто так - "данные":[{"demo1":123}}] и я, используя строку запроса, по умолчанию.аспн?имя пользователя=АВС &усилителя; пароль=айз после отладки этот код, теперь мои данные показывают, как что - [{"demo1":123}]

Graeme_Grant

значит, тебе не нужна помощь.

TheSniper105

в чем проблема ?

Satyanand Bhardwaj

я не хранил объект jason в массиве jason с именем массива .

TheSniper105

не могли бы вы рассказать нам о тех данных, которые у вас есть, и о том, что вы хотите сделать ?

Satyanand Bhardwaj

На самом деле, сэр, я хочу показать мой сериализовать данные просто так - "данные":[{"demo1":123}}] и я, используя строку запроса, по умолчанию.аспн?имя пользователя=АВС &усилителя; пароль=айз после отладки этот код, теперь мои данные показывают, как что - [{"demo1":123}]

3 Ответов

Рейтинг:
7

Diwesh Shrivastava

Я создал метод для чтения и преобразования его в словарь. Вы можете изменить его в соответствии с вашими потребностями. Мой код выглядит следующим образом:

public static Dictionary<string, string> ValidateJsonRequiredValue(JObject jsonData, string[] parameters, string[] nonMandatoryParam)
{
    if (jsonData == null || !jsonData.HasValues)
    {
        return null;
    }

    Dictionary<string, string> parametersValue = new Dictionary<string, string>();
    string retValue;

    foreach (string key in parameters)
    {
        retValue = GetJsonParameterValue(jsonData, key);
        if (retValue == null)
            return null;

        parametersValue.Add(key, retValue);
    }

    if (nonMandatoryParam == null)
        return parametersValue;

    foreach (string key in nonMandatoryParam)
    {
        retValue = GetJsonParameterValue(jsonData, key);
        parametersValue.Add(key, retValue);
    }

    return parametersValue;
}

public static string GetJsonParameterValue(JObject jsonData, string parameterName)
{
    string retValue = string.Empty;
    if (jsonData != null)
    {
        JToken obj = jsonData.GetValue(parameterName, StringComparison.CurrentCultureIgnoreCase);
        return obj == null ? null : Convert.ToString(obj);
    }

    return retValue;
}


Satyanand Bhardwaj

спасибо за это решение

Рейтинг:
23

TheSniper105

я предпочитаю json.net библиотека

более подробную информацию об этом можно найти в разделе следующая ссылка


пример того, что вы хотите

using System;
using Newtonsoft.Json;
using System.Collections.Generic;

public class Product
{
	public string Name
	{
		get;
		set;
	}

	public DateTime Expiry
	{
		get;
		set;
	}

	public string[] Sizes
	{
		get;
		set;
	}
}

public class Program
{
	public static void Main()
	{
		Product product = new Product();
		product.Name = "Apple";
		product.Expiry = new DateTime(2008, 12, 28);
		product.Sizes = new string[]{"Small"};
		
		
		List<Product> productsArr = new List<Product>{
		
          product,
		  product	
		};
		
		var dataObj = new
		{
		Data = productsArr
		}

		;
		string json = JsonConvert.SerializeObject(dataObj);
		Console.WriteLine(json);
	}
}


я создан работоспособный демонстрационный
the following link


Satyanand Bhardwaj

благодарю вас сэр

Рейтинг:
17

Graeme_Grant

Цитата:
На самом деле, сэр, я хочу показать мой сериализовать данные просто так - "данные":[{"demo1":123}}] и я, используя строку запроса, по умолчанию.аспн?имя пользователя=АВС &усилителя; пароль=айз после отладки этот код, теперь мои данные показывают, как что - [{"demo1":123}]

Это должно быть в тексте вопроса, а не в комментариях ниже.

Во-первых, ваш пример JSON недействителен. Вы можете проверить свой JSON здесь: JSON Formatter & Validator[^]

Коррекция есть:
{
   "Data":[
      {
         "demo1":123
      }
   ]
}

Далее, вам нужно иметь структуру класса для хранения данных, которые будут преобразованы. Мой любимый инструмент: JSON Utils: генерация C#, VB.Net, SQL Table, Java и PHP из JSON[^]

С помощью этого инструмента генерируются следующие классы:
public class Datum
{
    [JsonProperty("demo1")]
    public int Demo1 { get; set; }
}

public class Example
{
    [JsonProperty("Data")]
    public IList<Datum> Data { get; set; }
}

Теперь для обработки преобразования TheSniper105 имеет приведенный выше пример использования Json Newtonsoft.сетевая библиотека. Вот мой вспомогательный класс, найденный в моей статье Работа с JSON в C# и VB[^]:
using Newtonsoft.Json;
using System.Collections.Generic;

namespace Support.CSharp
{
    public static class JsonHelper
    {
        public static string FromClass<T>(T data, bool isEmptyToNull = false,
                                          JsonSerializerSettings jsonSettings = null)
        {
            string response = string.Empty;

            if (!EqualityComparer<T>.Default.Equals(data, default(T)))
                response = JsonConvert.SerializeObject(data, jsonSettings);

            return isEmptyToNull ? (response == "{}" ? "null" : response) : response;
        }

        public static T ToClass<T>(string data,
                                      JsonSerializerSettings jsonSettings = null)
        {
            var response = default(T);

            if (!string.IsNullOrEmpty(data))
                response = jsonSettings == null
                    ? JsonConvert.DeserializeObject<T>(data)
                    : JsonConvert.DeserializeObject<T>(data, jsonSettings);

            return response;
        }
    }
}

И сериализовать с помощью вышеприведенного вспомогательного класса:
var sampleClass = new Example { Data = new List<Datum> { new Datum { Demo1 = 123 }}};
var jsonData = JsonHelper.FromClass(sampleClass);

И десериализовать:
var jsonData = "{"Data":[{"demo1":123}]}";
var sampleClass = JsonHelper.ToClass<Example>(jsonData);

Вы можете узнать больше из моей статьи Работа с JSON в C# и VB[^].


Satyanand Bhardwaj

Большое спасибо...
Это работает и легко понять.