我正在尝试对我的字符串执行简单的转换操作。目标是将我的字符串转换为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?
答案 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);