Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
以字符串形式将哈希类型数据从Rails/Ruby传递到C#应用程序的最佳方法?_C#_Ruby On Rails_Parsing_Hash - Fatal编程技术网

以字符串形式将哈希类型数据从Rails/Ruby传递到C#应用程序的最佳方法?

以字符串形式将哈希类型数据从Rails/Ruby传递到C#应用程序的最佳方法?,c#,ruby-on-rails,parsing,hash,C#,Ruby On Rails,Parsing,Hash,我需要(通过HTTP请求/响应主体的字符串内容)将数据的名称-值对(如散列)从RubyonRails服务器传递回C#客户机 有谁碰巧知道用什么格式做这件事最好?我猜可能是XML tks PS.所以总体要求是找到一个C#方法,将JSON格式的名称/值对字符串(由Ruby/Rails创建)转换为现有的C#标准名称/值对类/变量(例如,我猜是数组还是字典?实际上,两者都支持JSON,并且肯定会满足您的要求 以下是指向C#的Javascript序列化程序的链接: 只要RubyonRails需要“json

我需要(通过HTTP请求/响应主体的字符串内容)将数据的名称-值对(如散列)从RubyonRails服务器传递回C#客户机

有谁碰巧知道用什么格式做这件事最好?我猜可能是XML

tks


PS.所以总体要求是找到一个C#方法,将JSON格式的名称/值对字符串(由Ruby/Rails创建)转换为现有的C#标准名称/值对类/变量(例如,我猜是数组还是字典?

实际上,两者都支持JSON,并且肯定会满足您的要求

以下是指向C#的Javascript序列化程序的链接:


只要RubyonRails需要“json”,就可以简单地使用“[to_json]”方法。

实际上,json在这两种语言中都受支持,并且肯定会满足您的要求

以下是指向C#的Javascript序列化程序的链接:


只要Ruby on Rails需要“json”,就可以简单地使用“[to_json]”方法。

您可以将该数据发布为:

  • HTTP POST字段(使用
    Request.Form
    读取)
  • 带有XML的HTTP POST字段(
    Request.Form
    XmlDocument
  • 带有JSON数据的HTTP POST字段(
    DataContractJsonSerializer
编辑:我有以下示例:

// Building on Silverlight to send
using (MemoryStream ms = new MemoryStream())
{
    new DataContractJsonSerializer(fileList.GetType()).WriteObject(ms, fileList);
    // send it
}

// Reading on ASHX page
JobEntry[] files = 
    new JavaScriptSerializer().Deserialize<Negocio.Cache.JobEntry[]>(
        new StreamReader(context.Request.InputStream).ReadToEnd());
//在Silverlight上构建要发送的
使用(MemoryStream ms=new MemoryStream())
{
新的DataContractJsonSerializer(fileList.GetType()).WriteObject(ms,fileList);
//发送它
}
//在ASHX页面上阅读
JobEntry[]文件=
新的JavaScriptSerializer()。反序列化(
新的StreamReader(context.Request.InputStream.ReadToEnd());

您可以将该数据发布为:

  • HTTP POST字段(使用
    Request.Form
    读取)
  • 带有XML的HTTP POST字段(
    Request.Form
    XmlDocument
  • 带有JSON数据的HTTP POST字段(
    DataContractJsonSerializer
编辑:我有以下示例:

// Building on Silverlight to send
using (MemoryStream ms = new MemoryStream())
{
    new DataContractJsonSerializer(fileList.GetType()).WriteObject(ms, fileList);
    // send it
}

// Reading on ASHX page
JobEntry[] files = 
    new JavaScriptSerializer().Deserialize<Negocio.Cache.JobEntry[]>(
        new StreamReader(context.Request.InputStream).ReadToEnd());
//在Silverlight上构建要发送的
使用(MemoryStream ms=new MemoryStream())
{
新的DataContractJsonSerializer(fileList.GetType()).WriteObject(ms,fileList);
//发送它
}
//在ASHX页面上阅读
JobEntry[]文件=
新的JavaScriptSerializer()。反序列化(
新的StreamReader(context.Request.InputStream.ReadToEnd());

谢谢-这是否意味着在C端没有一个可以将JSON字符串解析为C变量的单行程序?i、 你需要像你发布的链接中的答案那样设置一些类吗?谢谢-这是否意味着在C端没有一个可以将JSON字符串解析为C变量的单行程序?i、 你需要像你发布的链接中的答案那样设置一些类吗?谢谢鲁本斯-我看过JSON类-它似乎更像是从对象到对象的序列化-在我的例子中,我将从Rails生成的JSON形式的名称/值对字符串,然后由C#解析。你知道如何使用这些类来有效地将字符串转换成标准的C#名称/值对类(我想是字典集合,还是数组?);创建具有相同结构的类并直接使用接收到的数据。=)谢谢-事实上,我注意到了以下关于基本反序列化方法的注释,这可能很好,因为我们不必定义类……”“反序列化()方法相当于首先使用反序列化对象方法获取对象图,然后尝试将结果强制转换为T类型。”这似乎不是真的:反序列化对象似乎总是返回字典,不能转换为任意类型。Convert.ChangeType也不起作用。什么类型的转换应该有效?你不能绕过它,发送一些
类吗?啊,这是有效的:
var inputJson=“{\'x\':123,\'y\':\'qwerty\'”;var jss=新的JavaScriptSerializer();var output=jss.Deserialize(inputJson);感谢Rubens——我看了JSON类——它似乎更像是从对象到对象的序列化——在我的例子中,我将使用Rails生成的JSON形式的名称/值对字符串,然后由C#解析。你知道如何使用这些类来有效地将字符串转换成标准的C#名称/值对类(我想是字典集合,还是数组?);创建具有相同结构的类并直接使用接收到的数据。=)谢谢-事实上,我注意到了以下关于基本反序列化方法的注释,这可能很好,因为我们不必定义类……”“反序列化()方法相当于首先使用反序列化对象方法获取对象图,然后尝试将结果强制转换为T类型。”这似乎不是真的:反序列化对象似乎总是返回字典,不能转换为任意类型。Convert.ChangeType也不起作用。什么类型的转换应该有效?你不能绕过它,发送一些
类吗?啊,这是有效的:
var inputJson=“{\'x\':123,\'y\':\'qwerty\'”;var jss=新的JavaScriptSerializer();var output=jss.Deserialize(inputJson);