```json
{
  "sym_variables": [
    ("x0", "chicken drumsticks"),
    ("x1", "pickles"),
    ("x2", "hot dogs"),
    ("x3", "potatoes"),
    ("x4", "cantaloupes"),
    ("x5", "granola bars"),
    ("x6", "steaks")
  ],
  "objective_function": "7*x0 + 3*x1 + 8*x2 + 5*x3 + 9*x4 + 1*x5 + 9*x6",
  "constraints": [
    "8*x0 + 20*x2 + 7*x3 >= 26",
    "8*x0 + 20*x2 + 6*x5 >= 26",
    "8*x0 + 12*x1 + 20*x2 >= 26",
    "20*x2 + 7*x3 + 6*x5 >= 26",
    "12*x1 + 7*x3 + 11*x6 >= 26",
    "7*x3 + 5*x4 + 11*x6 >= 26",
    "8*x0 + 12*x1 + 5*x4 >= 26",
    "8*x0 + 7*x3 + 11*x6 >= 26",
    "12*x1 + 5*x4 + 6*x5 >= 26",
    "12*x1 + 6*x5 + 11*x6 >= 26",
    "20*x2 + 5*x4 + 11*x6 >= 26",
    "8*x0 + 20*x2 + 11*x6 >= 26",
    "12*x1 + 5*x4 + 11*x6 >= 26",
    "8*x0 + 6*x5 + 11*x6 >= 26",
    "8*x0 + 7*x3 + 6*x5 >= 26",
    "20*x2 + 6*x5 + 11*x6 >= 26",
    "12*x1 + 20*x2 + 6*x5 >= 26",
    "20*x2 + 7*x3 + 11*x6 >= 26",
    "7*x3 + 6*x5 + 11*x6 >= 26",
    "8*x0 + 12*x1 + 6*x5 >= 26",
    "5*x4 + 6*x5 + 11*x6 >= 26",
    "8*x0 + 5*x4 + 11*x6 >= 26",
    "12*x1 + 20*x2 + 7*x3 >= 26",
    "7*x3 + 5*x4 + 6*x5 >= 26",
    "12*x1 + 20*x2 + 11*x6 >= 26",

    "6*x5 + 11*x6 >= 36",
    "8*x3 + 13*x5 >= 47",
    "7*x0 + 13*x4 >= 44",
    "8*x3 + 13*x4 >= 19",
    "19*x1 + 8*x3 >= 47",
    "7*x0 + 9*x2 >= 17",
    "13*x4 + 13*x5 >= 27",
    "7*x0 + 19*x1 >= 19",
    "8*x3 + 3*x6 >= 33",
    "9*x2 + 8*x3 >= 25",
    "7*x0 + 8*x3 >= 21",
    "19*x1 + 9*x2 >= 20",
    "13*x4 + 3*x6 >= 23",
    "7*x0 + 3*x6 >= 47",
    "9*x2 + 13*x4 >= 33",
    "7*x0 + 13*x5 + 3*x6 >= 43",
    "8*x3 + 13*x4 + 3*x6 >= 43",
    "19*x1 + 13*x4 + 3*x6 >= 43",
    "13*x4 + 13*x5 + 3*x6 >= 43",
    "7*x0 + 8*x3 + 3*x6 >= 43",
    "19*x1 + 13*x4 + 13*x5 >= 43",
    "8*x3 + 13*x4 + 13*x5 >= 43",
    "7*x0 + 8*x3 + 13*x5 >= 43",
    "9*x2 + 8*x3 + 3*x6 >= 43",
    "7*x0 + 19*x1 + 13*x5 >= 43",
    "9*x2 + 13*x4 + 13*x5 >= 43",
    "19*x1 + 9*x2 + 8*x3 >= 43",
    "7*x0 + 9*x2 + 3*x6 >= 43",

    "-3*x0 + 10*x5 >= 0",
    "4*x1 - 7*x4 >= 0",
    "6*x5 + 11*x6 <= 181",
    "5*x4 + 6*x5 <= 206",
    "8*x0 + 12*x1 <= 245",
    "8*x0 + 20*x2 <= 76",
    "5*x4 + 11*x6 <= 51",
    "12*x1 + 7*x3 + 6*x5 <= 83",
    "7*x3 + 5*x4 + 6*x5 <= 53",
    "7*x3 + 6*x5 + 11*x6 <= 240",
    "8*x0 + 12*x1 + 11*x6 <= 81",
    "12*x1 + 20*x2 + 5*x4 <= 78",
    "8*x0 + 7*x3 + 6*x5 <= 146",
    "x0 + x1 + x2 + x3 + x4 + x5 + x6 >= 30",
    "7*x0 + 19*x1 + 9*x2 + 8*x3 + 13*x4 + 13*x5 + 3*x6 >= 41",

    "8*x0 + 12*x1 + 20*x2 + 7*x3 + 5*x4 + 6*x5 + 11*x6 <= 281",
    "7*x0 + 19*x1 + 9*x2 + 8*x3 + 13*x4 + 13*x5 + 3*x6 <= 340"
  ]
}
```

```python
from gurobipy import Model, GRB

# Create a new model
m = Model("food_optimization")

# Create variables
foods = ['chicken drumsticks', 'pickles', 'hot dogs', 'potatoes', 'cantaloupes', 'granola bars', 'steaks']
x = m.addVars(range(len(foods)), vtype=GRB.INTEGER, name=foods)

# Set objective function
m.setObjective(7*x[0] + 3*x[1] + 8*x[2] + 5*x[3] + 9*x[4] + 1*x[5] + 9*x[6], GRB.MINIMIZE)

# Healthiness rating and cost data
healthiness = [8, 12, 20, 7, 5, 6, 11]
cost = [7, 19, 9, 8, 13, 13, 3]

# Add healthiness constraints
m.addConstr(8*x[0] + 12*x[1] + 20*x[2] + 7*x[3] + 5*x[4] + 6*x[5] + 11*x[6] <= 281)


# Add cost constraint
m.addConstr(7*x[0] + 19*x[1] + 9*x[2] + 8*x[3] + 13*x[4] + 13*x[5] + 3*x[6] <= 340)

# Add other constraints from JSON "constraints"
for constraint_str in json_data["constraints"]:
    m.addConstr(eval(constraint_str))  # eval converts string to expression


# Optimize model
m.optimize()

# Print results
if m.status == GRB.OPTIMAL:
    print('Optimal objective:', m.objVal)
    for v in m.getVars():
        print('%s %g' % (v.varName, v.x))
elif m.status == GRB.INFEASIBLE:
    print('Model is infeasible')
else:
    print('Optimization ended with status %d' % m.status)

```