преобразовать строку в json и DataSet - PullRequest
0 голосов
/ 19 июня 2020
Код раздела

Html для метода публикации, я использовал этот способ, потому что после усталости от тестирования с ajax и xmlHttpRequest (они оба работали и получали значения на стороне сервера, но я хочу загрузить файл csv из json, загрузка не работает, не нашел точной причины, поэтому я выбираю отдельную вкладку для загрузки, я предполагаю конфликт с другими функциями для загрузки или ajax проблема)

<form id="outputform" class="paneloff" target="_blank" action="http://localhost:53610/test.aspx" method="post">
        <input id="xlsform" style="visibility:hidden;" type="hidden" name="xlsform" />
</form>  

Javascript раздел с генерирующим объектом и передаваемым значением для метода post

  var myObject = [];
   ....
   myObject.push(someJsonAttributes)
   .....
   dom.byId('xlsform').value = JSON.stringify(myObject);
  document.getElementById("outputform").submit();

test.aspx.cs (для настройки xls файла я не нашел большого источника в javascript, здесь я предпочел используйте c#)

 public string result;
        protected void Page_Load(object sender, EventArgs e)
        {
         //here am getting value
            this.result = "";
            if (Request.InputStream.Length > 0)
            {

                using (Stream receivedStream = Request.InputStream)
                {
                    using (StreamReader reader = new StreamReader(receivedStream, Encoding.UTF8))
                    {
                        result = reader.ReadLine();
                    }
                }
    //example value of result below, i have more than 300 columns
       //result value=outputform=%5B%7B%22column1%22%3A23520%2C%22ID%22%3A%22060420100%22%2C%22col2%22%3A%22%22%2C%22CITY%22%3A%22LA%22%2C%22col4%22%3A%22LOT+3+LESS+N48FT+BLK+2%22%7D%5D
                var dict = HttpUtility.ParseQueryString(result);
                var json2 = new JavaScriptSerializer().Serialize(
                                    dict.AllKeys.ToDictionary(k => k, k => dict[k])
                           );
 //json2 value={"output4":"[{\"column1\":23520,\"ID\":\"060420100\",\"col2\":\"\",\"CITY\":\"LA\",\"col4\":\"LOT+3+LESS+N48FT+BLK+2\"}]"}
   DataSet data = JsonConvert.DeserializeObject<DataSet>(Convert.ToString(json2));
   }
}

Я думаю, что значение json2 неверно, у него есть косая черта, страница продолжает загружаться, нет ошибок или ответа с веб-страницы.

Также пробовал с помощью следующих способов, не сработало

            JavaScriptSerializer serializer = new JavaScriptSerializer();
            object b = serializer.Serialize(json);

            JObject json2 = JObject.Parse(json);

       var nvs = HttpUtility.ParseQueryString(queryString);
        var dict = nvs.AllKeys.ToDictionary(k => k, k => nvs[k]);
        return JsonConvert.SerializeObject(dict, new KeyValuePairConverter());

Любые предложения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...