json中的对象c

时间:2017-05-07 10:15:12

标签: c object

我有javascript和php的背景但是我现在正在尝试学习C但是我已经遇到了一些障碍,在这两种语言中都有对象

$obj = new stdClass(); || const obj = {};
然而,我在C中找不到类似的东西,是不是没有这样的东西,或者我只是在找错了地方?

或者是否有更好的方法在C中做这样的事情?

好的我觉得我得到了Cody Gray的答案,但只是为了清楚一点:

我Javascript你可以做类似的事情:

const person = {
  name: "Donald Duck",
  age: 82,
  location: "Duckburg",
};

console.log(person.name, person.age, person.location);
在php中你会做类似

的事情
$person = new stdClass();

$person->name = "Donald Duck";
$person->age = 82;
$person->location ="Duckburg";

echo $person->name . " " . $person->age . " " . $person->location

我的问题是你是否/如何在C

中做到这一点

2 个答案:

答案 0 :(得分:1)

C没有“对象”,因为它是过程编程语言,而不是面向对象的语言。

但是,它 可以通过结构(struct关键字)对相关数据进行分组。这是您可能更一般地了解的用户定义类型。它与其他语言中的“类”或“对象”并不完全相同,因为它没有任何相关的成员函数(至少,没有一个疯狂欺骗的 lot )它确实是语言的一部分,当然不是惯用的,但它仍然非常方便。

语法如下:

struct Person
{
    char name[100];
    int  age;
    char location[100];
};

然后,在您的代码中,您只需:

struct Person donaldDuck = { "Donald Duck", 82, "Duckburg" };


printf("Name: %s\nAge: %d\nLocation: %s\n",
       donaldDuck.name,
       donaldDuck.age,
       donaldDuck.location);

请注意,使用.运算符访问结构的字段,就像许多其他语言一样。

See it online

答案 1 :(得分:0)

网上有大量的C库。 例如,看一看 https://github.com/DaveGamble/cJSON/blob/master/README.md