c#Newtonsoft.Json 有类似Java Jackson 里 JsonNode的对像吗

c#Newtonsoft.Json 有类似Java Jackson 里 JsonNode的对像吗,第1张

Newtonsoft Json 里,JObject 表示是一个对象,JArray 表示一个数组,这两个都是复合性元素,所以从 JContainer 继承。另外一些非复合性的,比如字符串、数、布尔等,用 JValue 表示。而JContainer 和 JValue 都从 JToken 继承。所以 JToken 和 JsonNode 所表示的东西应该相当。

如果你说的 JsonNode 是 Java Jackson 里的 org.codehaus.jackson.JsonNode,那么 JsonNode 里的大部分方法应该都可以在 JToken 中找到对应的(没实验,自己可以试试),比如

JsonNode.asInt 对应 JToken.Value<int>

//修改编译错误的办法:

//所有提示expected primary-expression before '&' token的地方

//都把ArrayList&删掉

//以及将i和j的赋值语句改为i=list1.elemsj=list2.elems

#include <iostream>

#include <stdlib.h>

using namespace std

#define INIT_SIZE 100

#define INC_SIZE 10

//定义一个线性表

typedef struct

{

int *elems

int len

int size

}ArrayList

ArrayList list1, list2, list3

//初始化线性表

void init(ArrayList&list)

{

list.elems=(int *)malloc(sizeof(int)*INIT_SIZE)

list.len=0

list.size=INIT_SIZE

}

//打印顺序

void print(ArrayList&list)

{

for (int i = 0i <list.leni++)

{

cout<<list.elems[i]<<"\n"

}

}

//销毁顺序表

void destroy(ArrayList&list)

{

free(list.elems)

list.len = 0

list.size = 0

}

//向顺序表index位置插入元素

void insert(ArrayList&list,int index,int e)

{

if(list.len>=list.size)

list.elems=(int *)realloc(list.elems, sizeof(int) * (INC_SIZE + list.size))

for(int i=list.len-1i>=indexi--)

{

list.elems[i+1]=list.elems[i]

}

list.elems[index] = e

list.len++

}

//向顺序表末尾插入元素e

void add(ArrayList&list, int e)

{

insert(list, list.len, e)

}

//删除顺序表index位置的元素

void remove(ArrayList&list,int index)

{

for(int i=indexi<=list.len-2i++)

{

list.elems[i]=list.elems[i+1]

}

list.len--

}

//将1,2比较然后放入3中的函数

void merge(ArrayList&list1,ArrayList&list2,ArrayList&list3)

{

init(list3)

int *i,*jint k=0

i=list1.elems

j=list2.elems

for(int s=1s<=list1.len &&s<=list2.lens++,i++,j++)

if(*i<*j)

{

insert(list3,k++,*i)

}

else insert(list3,k++,*j)

}

void testBasic()

{

init(list1)

init(list2)

init(list3)

add(list1, 3)

add(list1, 7)

add(list2, 2)

add(list2, 4)

add(list2, 5)

merge(list1, list2, list3)

print(list3)

destroy(list1)destroy(list2)destroy(list3)

}

int main()

{

testBasic()

}

#include<stdio.h>

#include<math.h>

int main()

{

int i,k,j

double s,pi=3.1415926,l=0.1,c=0.5

double r[21],w[21],y[12]

double a[21]={ -3.82704,-3.56608,-3.30512,3.04416,-2.7832,-2.52224,-2.26128,-2.00032,-1.73936,-1.4784,-1.21744,-0.95648,-0.69552,-0.43456,-0.1736,0.08736,0.34832,0.60928,0.87024,1.312,1.39216

}   //需要分号   //直接定义是写输入之,否则应该表示为1e-2 这种形式

//数据之间用逗号隔开  

double q[21]={

0.000349998 ,-0.000418371 ,0.000772828 ,-0.000171356 ,0.001022172 ,0.000897638 ,0.002208974 ,0.003844944, 0.00680904, 0.013029162, 0.022661391, 0.042972904 ,0.075423603,

0.139346367, 0.234486236, 0.366178323, 0.284615486, -0.235691746 ,0.046994188 ,-0.005901946 ,0.000570165

}

double t[12]={0.00001, 0.001, 0.1, 1.0 ,10.0 ,100.0, 1000.0, 10000.0, 100000.0, 1000000.0, 10000000.0, 100000000.0}

for(k=0k<12k++)

{

for(i=0i<21i++)

{

for(j=0j<21j++)

{

w[j]=pow(10,a[j])/t[k]

r[j]=1-(1+pow(w[j]*l,c)*cos(pi*c/2))/(1+pow(w[j]*l,c)+2*pow(w[j]*l,c)*cos(pi*c/2))

}

s=0

s=s+q[i]*r[i]

y[k]=s

}

}

for(k=0k<12k++)

{

printf("%lf\n",y[k])

}

return 0

}

帮你修改了。主要是定义没有弄好。。。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11623780.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-17
下一篇2023-05-17

发表评论

登录后才能评论

评论列表(0条)

    保存