Json不包含'stringify'的定义?

时间:2017-04-03 20:33:47

标签: c# razor json.net jira-rest-api

我正在尝试使用Visual Studio 2015,Microsoft Razor和C#与Json.Net 10.0.2更新JIRA问题。代码是:

<Deploy_Params>
<param>
    <param1>p1</param1>
    <param2>p2</param2>
    <param3>p3</param3>
    <param4>p4</param4>
    <param5>p5</param5>
</param>
<param>
    <param1>a1</param1>
    <param2>a2</param2>
    <param3>a3</param3>
    <param4>a4</param4>
    <param5>a5</param5>
</param>
<param>
    <param1>b1</param1>
    <param2>b2</param2>
    <param3>b3</param3>
    <param4>b4</param4>
    <param5>b5</param5>
</param>
</Deploy_Params>

错误发生在:

enum class EC {a, b};

struct B {
    constexpr B(EC ec): ec_(ec) {}
    EC ec_;
};

struct A_base {
    constexpr A_base(B b): b_(b) { }
    B b_;
};

struct A: A_base {
    static constexpr B bbb = EC::a;
    constexpr A(B bbbb): A_base(bbbb) { }
};

int main()
{
    A a1(A::bbb);    // 1
    A a2{A::bbb};    // 2

    A a3 = A::bbb;   // 3
    A a4 = {A::bbb}; // 4
}

JSON是:

public String updateJiraIssue(object objJira2) {
    JiraService.open("PUT", JiraUrl + "/rest/api/2/issue/NPI-24");
    JiraService.setRequestHeader("Content-Type", "application/json");
    JiraService.setRequestHeader("Accept", "application/json");
    JiraService.setRequestHeader("X-Atlassian-Token", "nocheck");
    JiraService.setRequestHeader("Authorization", "Basic " + GetEncodedCredentials());
    var myJSON = Json.stringify(JiraJson);
    JiraService.send(myJSON);
    String response = JiraService.responseText;
    JiraService.abort();
    return response;
}

1 个答案:

答案 0 :(得分:1)

JSON.stringify()是一个javascript函数,在发出ajax请求之前,您可以从网页脚本调用该对象将对象序列化为JSON。

在C#中,System.Web.Helpers命名空间中有一个Json类,但其序列化方法称为Encode,而不是stringify。请注意,此类在内部使用JavaScriptSerializer来完成其工作;它不依赖于Json.Net。

如果你想使用Json.Net,你应该改为呼叫JsonConvert.SerializeObject()

var myJSON = JsonConvert.SerializeObject(objJira2);