2017-08-03 130 views
2

我想将自定义参数添加到已解析的Json对象。自定义参数由多个值组成,因此需要使用Json格式的对象数组。JProperty转换为字符串而不是对象数组

将它添加到jsonObj时,它被视为整个字符串而不是数组。

var objs = new List<JObject>(); 
var jsonObj = JObject.Parse(JsonConvert.SerializeObject(myTable, jsonSettings)); 

// Add Custom Parameter 
jsonObj.Add(new JProperty("myArray", "[\"" + myTable.Col1 + "\", \"" + myTable.Col2 + "\"]")); 

objs.Add(jsonObj); 

电流输出:

myArray:"[\"Col1Val\", \"Col2Val\"]" 

所需的输出:

myArray:[\"Col1Val\", \"Col2Val\"] 
+0

我不明白当前和期望的输出之间有什么区别。它看起来像你想要的是删除双引号? –

+0

添加自定义参数时,我没有多余的引号,但是使用'new JProperty(“myArray”',...'它添加了引号并将参数视为字符串,我需要更改哪些内容所以它不会添加额外的引号? – user0187409

回答

3

为了使它工作,你应该使用正确的constructor

public JProperty(
    string name, 
    params Object[] content 
) 

所以,你应该如果写这个你需要s撕毁阵列内容:

jsonObj.Add(new JProperty("myArray", myTable.Col1, myTable.Col2)); 
+1

谢谢!解决了这个问题。 – user0187409

+0

不客气:) – CodeNotFound

相关问题