相关疑难解决方法(0)

在C#中通过WebClient将JSON发布到URL

我有一些我需要转换为C#的JavaScript代码.我的JavaScript代码将一些JSON发布到已创建的Web服务.此JavaScript代码工作正常,如下所示:

var vm = { k: "1", a: "2", c: "3", v: "4" };
$.ajax({
  url: "http://www.mysite.com/1.0/service/action",
  type: "POST",
  data: JSON.stringify(vm),
  contentType: "application/json;charset=utf-8",
  success: action_Succeeded,
  error: action_Failed
});

function action_Succeeded(r) {
  console.log(r);
}

function log_Failed(r1, r2, r3) {
  alert("fail");
}
Run Code Online (Sandbox Code Playgroud)

我正在试图找出如何将其转换为C#.我的应用程序使用的是.NET 2.0.据我所知,我需要做以下事情:

using (WebClient client = new WebClient())
{
  string json = "?";
  client.UploadString("http://www.mysite.com/1.0/service/action", json);
}
Run Code Online (Sandbox Code Playgroud)

我现在有点卡住了.我不确定json应该是什么样的.我不确定是否需要设置内容类型.如果我这样做,我不知道该怎么做.我也看到了UploadData.所以,我不确定我是否使用了正确的方法.从某种意义上说,我的数据序列化是我的问题.

谁能告诉我我在这里失踪了什么?

谢谢!

c# webclient

82
推荐指数
3
解决办法
16万
查看次数

命名空间System中不存在Json

在本教程中:http://www.asp.net/web-api/videos/getting-started/custom-validation Jon使用

dynamic error = new JsonObject();
Run Code Online (Sandbox Code Playgroud)

using System.Json;
Run Code Online (Sandbox Code Playgroud)

我猜这是JsonObject:http : //msdn.microsoft.com/en-us/library/system.json.jsonobject( v=vs.110) .aspx位于:

  • 命名空间:System.Json
  • 程序集:System.Runtime.Serialization(在System.Runtime.Serialization.dll中)

我已经添加了System.Runtime.Serialization引用但仍无法找到System.Json.

我读微软的文档错了吗?(我使用的是.NET 4.5)

json .net-4.5 asp.net-web-api

18
推荐指数
2
解决办法
6万
查看次数

C#排序JSON字符串键

我想转换JSON字符串

"{ \"birthday\": \"1988-03-18\", \"address\": { \"state\": 24, \"city\": 8341, \"country\": 1 } }"
Run Code Online (Sandbox Code Playgroud)

"{ \"address\": { \"city\": 8341, \"country\": 1, \"state\": 24 }, \"birthday\": \"1988-03-18\" }"
Run Code Online (Sandbox Code Playgroud)

注意:我没有使用排序版本进行通信(因为密钥顺序并不重要),我需要一个排序版本来执行本地测试(通过比较JSON字符串).


编辑: I4V指出一个使用Json.Net的解决方案,我宁愿使用一个不需要包含任何第三方库的解决方案(实际上我在我的应用程序中使用内置的System.Json)


我张贴由I4V +一些测试提供的解决方案要点这里.谢谢你们.

.net c# sorting string json

8
推荐指数
2
解决办法
9668
查看次数

如何在没有JSON.NET库的情况下将对象转换为JSON?

我想保存这个对象:

Student s = new Student();
Run Code Online (Sandbox Code Playgroud)

到Json文件.但Visual Studio 2012找不到这些名称空间:

System.Web.Script;
System.Json;
System.Runtime.Serialization.Json;
Run Code Online (Sandbox Code Playgroud)

任何的想法?

c# serialization json

7
推荐指数
3
解决办法
2万
查看次数

从ASMX Web服务返回JSON,没有XML包装器?

我需要从C#Web服务获取Json数据.

我知道基于此有几个问题,请相信我,我已阅读了不少内容,但只是为了让我更加困惑.

这就是我所做的:

在我的网络服务中,我包括:[System.Web.Script.Services.ScriptService]用于课程和[ScriptMethod(ResponseFormat = ResponseFormat.Json, UseHttpGet = true)]方法

我还用a JavaScriptSerializer()来将我的数据转换为字符串

我正在使用这个服务 $.getJSON()

如果我不使用它,我会收到跨域引用错误.

为此,我不得不设置m服务来获取回调函数名称,所以我传递t his.Context.Request["callback"]+序列化的Json数据;

但是在输出中我把它包裹起来

< string xmlns="http://XYZ...">  
Run Code Online (Sandbox Code Playgroud)

标签内的数据采用我需要的格式

我还尝试使用以下方法设置内容类型 $.ajaxSetup({ scriptCharset: "utf-8" , contentType: "application/json; charset=utf-8"});

但仍然没有成功.

稍后添加:我接受了frenchie的anwser,因为我知道这是正确的方法,但我仍然不能让它工作......我只是将webservice和网站放在同一个域并使用xml,我知道这不是最好的方法,但是我花了两天时间而且不能浪费更多.

json web-services asmx javascriptserializer

6
推荐指数
1
解决办法
3万
查看次数