Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.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
C# Json.net格式_C#_Json_Json.net - Fatal编程技术网

C# Json.net格式

C# Json.net格式,c#,json,json.net,C#,Json,Json.net,我在api调用的json格式方面遇到了问题。我需要这样的东西 { "token": "87dd8f93-27ad-493c-8ab1-e75c50b8fb71", "answers": [ { "question": "Where are you from", "ans": "t" }, { "question": "I am from tts",

我在api调用的json格式方面遇到了问题。我需要这样的东西

{
    "token": "87dd8f93-27ad-493c-8ab1-e75c50b8fb71",
    "answers": [
        {
            "question": "Where are you from",
            "ans": "t"
        },
        {
            "question": "I am from tts",
            "ans": "f"
        }
    ]
}
我有一个名为answers的散列数组,我分别用

string json = JsonConvert.SerializeObject(account, Formatting.Indented);
在那之后,我必须使用令牌,但使用我得到的相同过程

{
    "token": "87dd8f93-27ad-493c-8ab1-e75c50b8fb71",
    "answers": [
        "{\r\n
            \"question\": \"Where are you from\",
            \"ans\": \"t\"
        }",
        "{\r\n
            \"question\": \"I am from tts\",
            \"ans\": \"f\"
        }"
    ]
}

 public class Account
    {
       public string question { get; set; }
       public string ans { get; set; }           
    }
然后呢

if (ansNo.IsChecked == true)
                    {
                        Account account = new Account
                        {
                            question = quizText.Text,
                            ans = "f"
                        };
                        string json = JsonConvert.SerializeObject(account, Formatting.Indented);
                        Globals.answers[counter] = json;   
                    }
                    else
                    {
                        Account account = new Account
                        {
                            question = quizText.Text,
                            ans = "t"
                        };
                        string json = JsonConvert.SerializeObject(account, Formatting.Indented);
                        Globals.answers[counter] = json;
                    }
需要帮忙吗
谢谢

我认为你所追求的可以通过重新整理你的数据来实现。创建要序列化以返回的新对象

public class MyJson{
    public string token {get;set;}
    public List<Account> answers {get;set;}

    public MyJson(){
        answers = new List<Account>();
    }
}
然后就像你已经添加到列表的答案一样

Account account = new Account{
     question = quizText.Text,
     ans = "t"
};
o.answers.Add(account);
然后将整件事情序列化并返回

return JsonConvert.SerializeObject(o, Formatting.Indented);

如果您只是将其传递到api调用中,为什么要关心它是否缩进?您正在调用的函数肯定不会:)@LynnCrumbling,因为“'在回答中的大括号上,它不是正确的json,并且没有得到任何结果back@L.B它在答案中的大括号中添加引号。您如何填写
帐户?@user2752370这与缩进格式有什么关系?Adwin感谢您提供的示例。我试过了。但是有个问题。答案列表没有得到任何东西。它是空的…帐户对象作为散列?不知道你说的是什么意思。。。帐户列表对象应该填充在
if(ansNo.IsChecked==true)
if语句中,如果达到该if语句,则应该添加一个项。Adween yap我在条件语句中尝试了这一点,通过哈希,我的意思是我有一个问题文本,如(“你从哪里来”)和一个答案,如(“t”或“f”)。我希望它们像{“问题”:“你在哪里”,“ans”:“t”}这样的散列,一个数组中的所有散列,然后这个数组和标记就是一个父散列。啊,好吧,为了使它们成为散列,我将使用
字典回答{get;set;}
,而不是帐户列表。那么是的,它们将被散列,但是为什么需要对它们进行散列呢?当它们以json的形式发送时,这并不重要……好吧,我明白你们关于散列的观点,但这并不是在答案列表中添加帐户。。。。你知道吗?
return JsonConvert.SerializeObject(o, Formatting.Indented);