C#转换JSON以JavaScript对象符号
在C#我想JSON转换成JS对象符号因此,例如这样的:C#转换JSON以JavaScript对象符号
{
"personalizations":[
{
"to":[
{
"email":"[email protected]",
"name":"John"
}
],
"subject":"Hello, World!"
}
]
}
会产生这样的:
personalizations[0].to[0].email="[email protected]";
personalizations[0].subject="John";
任何想法?
您是否尝试过原生js函数:JSON.parse(your_json)?
我知道你没有足够的代表评论,但我会要求你保持耐心。以评论为答案可以吸引downvotes。因此,如果您选择回答,请确保它有理由回答 – Rajesh
@Rajesh一个有用的链接:[为什么我需要50个评论声望?我能做些什么呢?](http://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can-i-do-instead) –
Do你建议我删除我的答案? –
JSON代表JavaScript Object Notation。这就是这个词的意思。
我假设你的意思是你想一个JSON声明转化为赋值语句,你可以做到这一点很容易不够:
var data = {
"personalizations":[
{
"to":[
{
"email":"[email protected]",
"name":"John"
}
],
"subject":"Hello, World!"
}
]
};
var personalizations = [];
for(var i = 0; i< data.personalizations.length; i++) {
var p = {};
p.subject = data.personalizations[i].subject;
// etc
personalizations[i] = p;
}
console.log(personalizations);
var oldObject = {
"personalizations":[
{
"to":[
{
"email":"[email protected]",
"name":"John"
}
],
"subject":"Hello, World!"
}
]
};
var newObject = JSON.parse(oldObject);
你可以得到单修改值并建立一个字符串。
您可能需要一些更好的正则表达式来检查使用点符号的键。
function getParts(object, path) {
path = path || [];
return Object.keys(object).reduce(function (r, k) {
if (object[k] && typeof object[k] === 'object') {
return r.concat(getParts(object[k], path.concat(k)));
}
r.push(path.concat(k, object[k]));
return r;
}, []);
}
var data = { personalizations: [{ to: [{ email: "[email protected]", name: "John" }], subject: "Hello, World!" }] },
result = getParts(data).map(function (a) {
var value = a.pop();
return a.map(function (k, i) {
return /^[a-z_$][a-z0-9_$]*$/.test(k) ? (i ? '.' : '') + k : '[' + k + ']';
}).concat('=' + (typeof value === 'string' ? '"' + value + '"' : value) + ';').join('');
});
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
JSON.parse ???? –
JSON === JavaScript对象表示法...没有转换 –
对不起,这是一个C#问题..似乎无法编辑问题。所以在C#中,我希望从这个JSON生成这些属性分配。 – Josh