使用单个键c#创建JSON数组

时间:2018-03-08 07:06:57

标签: c# json c#-4.0

我正在使用.Net 3.5框架处理VS2008。我正在尝试使用以下格式创建一个JSON对象,

{
  "types":["KKYQ","TGDF","YHGF"]
}

我尝试了以下代码,

public class OutputJson
{
    public List<Types> types { get; set; }
}

public class Types
{
    public string types { get; set; }
}

public string getCodeTypes()
{
    foreach (var key in allKeys)
    {
        objToSerialize.Types.Add(new Types { types = key }); 
    }
    var objToSerialize = new OutputJson();
    var jsonOutput = new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(objToSerialize.types);
    string finalResposne = JsonConvert.SerializeObject(jsonOutput, Formatting.None);
    return jsonOutput.Replace(@"\", "");
}

上面的代码以下面的格式生成JSON,

"[{\"types\":\"KKYQ\"},{\"types\":\"TGDF\"},{\"types\":\"YHGF\"}]"

我用谷歌搜索并尝试了谷歌的一些参考,我无法以所需的格式实现输出。

请帮我以下面的格式获取JSON对象,

{
  "types":["KKYQ","TGDF","YHGF"]
}

感谢您的帮助。

3 个答案:

答案 0 :(得分:3)

无需为 string 属性使用单独的类。 请尝试以下JSON对象:

$pages_args = array( 'post_type' => 'page' ); 
$page_list = get_pages( $pages_args );
// Wordpress: Notice: Object of class WP_Post could not be converted to int on homepage
foreach ( $page_list as $individual_page ) {
    if ( ( $individual_page->post_title == 'Login' && strpos( $individual_page->post_content, $login_shortcode ) ) && $individual_page->post_status == 'publish' ) {
        $page_id = $individual_page->ID;
    }
}

使用它像:

public class OutputJson
{
    public List<string> types { get; set; }
}

或者在你的情况下:

OutputJson json = new OutputJson
{
    types = new List<string> {"KKYQ", "TGDF", "YHGF"}
};
string finalResposne = JsonConvert.SerializeObject(json);

<强>输出:

var objToSerialize = new OutputJson();
foreach (var key in allKeys)
{
    objToSerialize.types.Add(key); 
}
string finalResposne = JsonConvert.SerializeObject(objToSerialize);

答案 1 :(得分:2)

不需要上课。

    Console.WriteLine
    (
        JsonConvert.SerializeObject
        (
            new 
            { 
                types = new [] { "KKYQ","TGDF","YHGF"}
            }
        )
    );

输出:

{"types":["KKYQ","TGDF","YHGF"]}

Link to Fiddle

答案 2 :(得分:1)

dateNow