如何从我的json对象中删除不必要的\\ u0027?

时间:2017-10-31 19:50:21

标签: c# asp.net json type-conversion

我正在尝试对我的字符串执行简单的转换操作。目标是将我的字符串转换为json格式。

string clientID= newClient.GetClientId();
string clientSecret = "ZDUyYTYyMjYtMTcyNC00ODkxLWI2NmMtMDlhZjA3MDdiOGQ2";
var stringObject= "{ clientID:"+ "'"+clientID+"', clientSecret:"+"'"+clientSecret+"'}" ;
var json= new JavaScriptSerializer().Serialize(stringObject);

然而,当我打印json时..输出显示如下:

“{clientID:\ u0027YmY3NjZkM2ItZDg3MC00ZjQwLTk1NjktNTE0N2M1YzExOWMx \ u0027,clientSecret:\ u0027ZDUyYTYyMjYtMTcyNC00ODkxLWI2NmMtMDlhZjA3MDdiOGQ2 \ u0027} \”

如何删除不必要的\ u0027?

3 个答案:

答案 0 :(得分:1)

第一步是建模一个与您需要的JSON结构相匹配的类。在这种情况下,具有2个字符串属性的类将执行:

public class FooType 
{
   public string clientID {get;set;}
   public string clientSecret {get;set;}
}

接下来,我们需要实例化此类并设置其属性:

var foo = new FooType { 
    clientID = newClient.GetClientId(),
    clientSecret = "ZDUyYTYyMjYtMTcyNC00ODkxLWI2NmMtMDlhZjA3MDdiOGQ2",
};

然后我们可以将其序列化为JSON:

var json= new JavaScriptSerializer().Serialize(foo);

json中的结果将是:

{"clientID":"42","clientSecret":"ZDUyYTYyMjYtMTcyNC00ODkxLWI2NmMtMDlhZjA3MDdiOGQ2"}

注意这些值是如何用双引号括起来的,而不是单引号,并且不需要特别小心来转义,删除或替换字符。这完全由序列化程序处理,因为这是他们的主要责任。

虽然使用JavaScriptSerializer的代码仍然可以使用,但documentation中说明您最好切换到Json.NET以序列化JSON。你的方法是一样的。

答案 1 :(得分:0)

使用Newtonsoft.JSON.Linq的JObject将解决有人试图直接转换字符串的问题..

y_pred = ridge.predict(df_test)

这是示例代码:

   JObject json = JObject.Parse(str);

这会在控制台中生成以下输出:

using System.Web;
using Newtonsoft.Json.Linq;

namespace MyTestProjectConsole
{
    public class Test1Json
    {
        public void ConvertJson()
       {
            string clientID = "aa";
            string clientSecret = "bb";
            var stringObject = "{ clientID:" + "'" + clientID + "', clientSecret:" + "'" + clientSecret + "'}";
            var json = JObject.Parse(stringObject);
            Console.WriteLine(json);
        }

        public static void Main()
        {
            Test1Json obj = new Test1Json();
            obj.ConvertJson();
            Console.ReadKey();
        }
    }
}

答案 2 :(得分:0)

您可以使用this函数替换json文本字符串,以删除这些字符:

var json= new JavaScriptSerializer().Serialize(stringObject);
json = System.Text.RegularExpressions.Regex.Unescape(json);