当前位置: 首页 > 面试题库 >

将C#对象转换为json字符串,如何处理双引号

钮善
2023-03-14
问题内容

我正在使用Newtonsoft.Json将对象解析为json字符串。它返回这样的想法:

{\"code\":-1,\"idName\":\"empty\",\"idValue\":0,\"message\":\"Failed,can not read object from body\"}

我认为这不是有效的json字符串,任何人都可以解决我的问题?

我想要的是这样的:

{"code":-1,"idName":"empty\",\"idValue\":0,\"message\":\"Failed,can not read object from body\"}



public static class CommonUtility
{
    // format response string
    public static string FormatResponseString(int code, string idName, long idValue, string message)
    {
        ResponseString rs = new ResponseString();
        rs.code = code;
        rs.idName = idName;
        rs.idValue = idValue;
        rs.message = message;

        string json = JsonConvert.SerializeObject(rs);
        return json;
    }
}

public class ResponseString
{
    public int code;
    public string idName;
    public long idValue;
    public string message;
}

编辑:这是来自响应字段TextView的实际json,我可以看到:

"{\"code\":-1,\"idName\":\"empty\",\"idValue\":0,\"message\":\"Failed,can not read object from body\"}"

情况是这样的:我将序列化的json字符串放在Web api
CreateResponse方法中。我可以在fidder中看到响应字符串,就像我在无效的json问题中所说的那样

Request.CreateResponse(HttpStatusCode.Created, returnString);

returnString是来自序列化ResponseString对象的json字符串

我不认为这是有效的字符串,对吗?


问题答案:

最后,解决此问题。与你们分享。

根本原因:
我的猜测是这是双重序列化问题。看来 ASP.NET Web API 2框架将为我们自动进行序列化
。这就是为什么我SerializeObject再加Debug.Write(json)上字符串都能很好地工作的原因。

string json = JsonConvert.SerializeObject(rs);     
Debug.Write(json);

但是在提琴手调用了Web API之后,Web
API返回了带有无效json(\“)的响应,正如我上面所说的。在其他客户端(例如ios,android设备)上也是如此。

因为网络api为我执行了序列化,并且我进行了额外的显式序列化,这也string json = JsonConvert.SerializeObject(rs); 意味着我运行了另一个不需要的parseJson。

根据我在这里的问题,我只是直接将未序列化的对象放在CreateResponse方法中。Request.CreateResponse(HttpStatusCode.Created, rs);并返回该fidder和其他客户端的有效json。

我该如何解决此问题: Request.CreateResponse(HttpStatusCode.Created,rs);

public static class CommonUtility
    {
        // format response string
        public static ResponseString FormatResponseString(int code, string idName, long idValue, string message)
        {
            ResponseString rs = new ResponseString();
            rs.code = code;
            rs.idName = idName;
            rs.idValue = idValue;
            rs.message = message;

            return rs ;
        }
    }

    public class ResponseString
    {
        public int code;
        public string idName;
        public long idValue;
        public string message;
    }

并在控制器中

ResponseString rs = new ResponseString();
                        rs = CommonUtility.FormatResponseString(0, "pacelId", returnPacelId, "Succeed,created items in db success");
                        return Request.CreateResponse(HttpStatusCode.Created, rs);


 类似资料:
  • 问题内容: 将字符串表示形式转换为对象,但我要相反。对象要转换为JSON字符串,我有一个链接http://www.devcurry.com/2010/03/convert- javascript-object-to-json.html, 但是它需要json2.js jQuery是否具有本机功能方法来做到这一点? 问题答案: jQuery只会在调用本机浏览器方法之前进行一些正则表达式检查。如果不可用

  • 问题内容: 如何使用JavaScript(或jQuery)将描述对象的字符串转换为JSON字符串? 例如:转换这个( 不是 有效的JSON字符串): 到这个: 如果可能,我希望避免使用。 问题答案: 如果字符串是来自可靠来源 ,你可以使用然后的结果。像这样: 请注意,当您使用对象文字时,必须将其括在圆括号中,否则将花括号解析为块而不是对象。 我也同意以下问题的评论,那就是最好以有效的JSON开始编

  • 问题内容: 您如何使JS认为字符串是JSON? 我有一个仅在将JSON对象传递给它的情况下才起作用的函数。如果我以与JSON相同的格式将字符串传递给它,则它将不起作用。因此,我想让该函数认为传递给它的字符串是JSON。该字符串确实采用JSON格式。 我还尝试了以下方法。我通过Ajax输入了字符串,参数“ handle as”为“ JSON”,然后将结果传递给函数。 所以我推断出问题不在弦上。如何将

  • 问题内容: 我想将json字符串转换为对象列表。请帮我。如果由来完成,那会更有帮助。 我试过了,但是没有用。我不想要该json的所有值。MatrixModel中提到的 这是一个对象 这是Json String 问题答案: 您可以使用json2csharp.com将json转换为对象模型 将您的JSON粘贴到Box中。 单击“生成”。 您将为您的对象模型获得C#代码 通过使用 NewtonJson*

  • 问题内容: 在Java中,我有一个代码将Java对象转换为JSON字符串。如何在C#中执行类似操作?我应该使用哪个JSON库? 谢谢。 JAVA代码 问题答案: 我使用过Newtonsoft JSON.NET (文档),它允许您创建类/对象,填充字段并序列化为JSON。

  • 我有这个json字符串 我想把它转换成JsonObject,因为它里面有一个json字符串,所以我必须取出JsonElement,然后使用它。问题是JsonElement“service”和“op”是字符串 我希望JsonObject像这样被转换 我尝试了新的JsonParser().parse(字符串)和新的Gson().fromJson(字符串,JsonObject.class),但没有解析。