– JSON-LD error: “Missing ‘}’ or object member name” even when parenthesis appear to be balanced

Your problem is smart quotes. You use them. JSON can’t have them. JSON has to have regular old dumb quotes. Up until line 10, you use the correct quotation marks, but then at line 10 you switch to using fancy slanted quotation marks.

The solution is to use find and replace to find the smart quotes and replace them with dumb quotes. I would also clean up the indentation. Then you end up with:

<script type="application/ld+json">
    "@context": "",
    "@type": "WebPage",
    "name": "Brand X Information for Healthcare Professionals",
    "mainEntity": {
      "@type": "Drug",
      "name": "Name",
      "activeIngredient": "Cysteamine Hydrochloride",
      "administrationRoute": "Ophthalmic",
      "drugUnit": "0.44% Cysteamine Ophthalmic Solution",
      "dosageForm": "Topical Solution",
      "manufacturer": {
        "@type": "Organization",
        "name": "Company Name"
      "mechanismOfAction": "Cysteamine, the active ingredient in BrandX, is an aminothiol that depletes lysosomal cystine, preventing buildup of cystine crystals in bodily tissues. Within lysosomes, cysteamine interacts with cystine to form cysteine and cysteineu2013cysteamine mixed disulfide. These substances can pass through the lysosomal membrane and be eliminated from the cell."

This is usually caused by trying to edit in a word processor such as Microsoft Word, Google docs, or Libreoffice. For code, you should avoid using these programs. Find a text editor built for programmers. Such an editor won’t try to smarten your quotes for you.